实现OAUTH提供程序Java - 生成使用者密钥和密钥

时间:2012-08-23 20:42:46

标签: java oauth

我的应用程序是oauth提供者。当我使用预先生成的消费者密钥和秘密时,它工作正常。我想知道在java中生成Consumer Key和Secret的最佳方法是什么。有没有我可以用来做这个的库。基本上我想创建一个应用程序注册页面,在其他应用程序可以注册。我打算询问回调网址和应用名称等详细信息。我只想根据这些细节生成随机的消费者密钥和秘密。我打算使用HMACSHA1。任何帮助都将受到高度赞赏

2 个答案:

答案 0 :(得分: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);
  }
}

答案 1 :(得分:0)

感谢所有人的快速回复。我最终使用“javax.crypto”包根据app注册时输入的输入srtings生成“HmacSHA1”键。