【问题标题】:OAuth 2.0 Generating Token and Secret Token [closed]OAuth 2.0 生成令牌和秘密令牌 [关闭]
【发布时间】:2013-06-13 00:56:37
【问题描述】:

我正在使用 Apache Oltu 框架实现 OAuth 2.0 提供程序服务器,寻找有关如何在 java 中生成访问令牌和秘密令牌的一些想法。请指教。

【问题讨论】:

  • 关注 Oatuh 文档,用谷歌搜索并帮助自己!

标签: java oauth-2.0 access-token oltu


【解决方案1】:

OAuth 2.0 specification 没有说明如何生成令牌和秘密令牌。因此,您是使用一些现有/锚数据来生成令牌还是要使用随机序列来生成令牌,这取决于您。唯一的区别是,如果您使用可能已知的数据(例如用户数据,例如用户名、创建日期等),您可以在需要时随时恢复令牌。如果使用随机数据序列,则令牌丢失后将无法恢复。

换句话说,RFC 不会限制您的生成过程。

我可能会使用用户详细信息数据加上一些随机数据的字符串连接,然后进行 Base64 编码。

String keySource = username + creationDate + random;
byte [] tokenByte = new Base64(true).encodeBase64(keySource.getBytes());
String token = new String(tokenByte);

【讨论】:

  • 感谢您的建议,我的要求是拥有一个包含客户端 ID、应用程序 ID 等信息的自包含令牌,并拥有一个可用于解密颁发的令牌并获取信息的秘密令牌令牌。建议我一些方法来实现这一点。
  • 然后你可以创建客户端ID,应用ID等令牌。生成秘密令牌并将其存储在数据库中。并使用 DES 算法用秘密令牌对颁发的令牌进行加密/解密。这是关于如何使用 DES 的示例是 java java-espresso.blogspot.com/2011/09/…
  • 谢谢你,这正是我想要的,你能推荐一些比 DES 更安全且可用于我要求的其他算法吗?
  • AES 更安全。它使用更长的密钥进行编码/解码。用法与 DES 非常相似,唯一的区别是算法名称。您可以在这里找到使用示例code2learn.com/2011/06/…
猜你喜欢
  • 2023-04-07
  • 2012-04-28
  • 1970-01-01
  • 1970-01-01
  • 2013-01-23
  • 1970-01-01
  • 1970-01-01
  • 2011-03-18
  • 2015-02-21
相关资源
最近更新 更多