2016-09-10 14 views
1

SecureRandom randomパラメータがorg.springframework.security.crypto.bcrypt.BCryptPasswordEncoderのパラメータであることを説明できますか? javadocjava spring BCryptPasswordEncoder "SecureRandom random"コンストラクタパラメータ

そして私は、このコンストラクタについて尋ねる:

JavadocはここにあるBCryptPasswordEncoder(int strength, SecureRandom random)。私はどのパラメータがSecureRandom randomを意味するのか理解できません。

私は春のドキュメントを読んだり、Googleで何かを見つけようとしましたが、それはまだその目的を理解していません。私はbCryptがパスワードにランダムな塩を追加することを知っていますが、BCryptクラスのソースから見ると同じではありません。

+0

それはあなたがこのために乱数のためのカスタム設定を指定することができますので、乱数発生器と春のセキュリティはコンストラクタでこれを可能にします。このhttps://docs.oracle.com/javase/7/docs/api/java/security/SecureRandom.htmlを参照してください。 –

答えて

1

SecureRandomのjavadocからわかるように、BCryptPasswordEncoderが生成するハッシュをランダム化するために使用できる乱数を含むオブジェクトです。ここで

は、クラスの状態のjavadocは何ですか:

暗号的に強い乱数が最小限FIPS 140-2で指定された統計的乱数ジェネレータのテストに準拠して、暗号モジュールのセキュリティ要件、セクション4.9。 1。ここにSecureRandomを作成する方法の例については

は、ドキュメントから別の引用です:のSecureRandomの

典型的な発信者は、ランダムバイトを取得するには、次のメソッドを呼び出します。

SecureRandom random = new SecureRandom(); 
    byte bytes[] = new byte[20]; 
    random.nextBytes(bytes); 

呼び出し側はgenerateSeedメソッドを呼び出して、指定された数のシードバイトを生成することもできます(他の乱数ジェネレータ例えばS、):

byte seed[] = random.generateSeed(20); 
関連する問題