我的应用程序是一个 oauth 提供者。当我使用预先生成的消费者密钥和秘密时,它工作正常。我想知道在 java 中生成 Consumer Key 和 Secret 的最佳方法是什么。有没有我可以用来执行此操作的库。基本上我想创建一个应用程序注册页面,在其他应用程序中可以注册。我打算询问详细信息,例如回调 URL 和应用程序名称。我只想根据这些细节生成随机的消费者密钥和秘密。我打算使用 HMACSHA1。任何帮助将不胜感激
问问题
1755 次
2 回答
2
您需要生成一个 20-40 字符长的加密安全随机字符字符串。为此,您需要使用 CSRNG。java实现如下所示。
public final class KeyGenerator
{
private static final String symbols = "abcdefghijklmnopqrstuvwxyzABCDEFGJKLMNPRSTUVWXYZ0123456789-_";
private final Random secureRandomProvider = new SecureRandom();
private final char[] buffer;
public KeyGenerator(int length)
{
if (length < 1)
throw new IllegalArgumentException("length < 1: " + length);
buffer = new char[length];
}
public String CreateKey()
{
for (int idx = 0; idx < buffer.length; ++idx)
buffer[idx] = symbols.charAt(secureRandomProvider.nextInt(symbols.length()));
return new String(buffer);
}
}
于 2012-08-23T21:01:02.953 回答
0
感谢大家的及时回复。我最终使用“javax.crypto”包根据应用注册时输入的输入字符串生成“HmacSHA1”密钥。
于 2012-08-24T15:19:53.350 回答