4

私のアプリケーションは oauth プロバイダーです。事前に生成されたコンシューマー キーとシークレットを使用すると、正常に動作します。Java でコンシューマー キーとシークレットを生成する最良の方法を知りたいと思いました。これを行うために使用できるライブラリはありますか。基本的に、他のアプリケーションで登録できるアプリ登録ページを作成したいと考えています。コールバックURLやアプリ名など詳細を伺う予定です。これらの詳細に基づいて、ランダムなコンシューマ キーとシークレットを生成したいだけです。HMACSHA1 を使用する予定です。どんな助けでも大歓迎です

4

2 に答える 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 に答える