2012-03-08 12 views
2

java.security.SecureRandomの2つの値は、最初は同じ値に設定されていますが、乱数の順序は同じですか?安全な乱数をJavaでシードする

クライアントとサーバーの両方で同じ乱数シーケンスが必要なので、私はこれを求めています。両方が同じシード値を使用している場合はどうなりますか?シーケンスが同じであるか、シーケンスを同じにすることができる方法はありますか?

答えて

8

the API docsから:

Randomの2つのインスタンスが同じシードで作成され、メソッド呼び出しの同じシーケンスがそれぞれのために作られている場合、彼らは数字の同一の配列を生成して返します。

+1

慎重に質問を読んでください私は安全なランダムを使用しています、あなたはランダムについて話しています。 – Ashwin

+1

'SecureRandom'は' Random'の子クラスですが、私はこのAPIからの引用はまだ適用されると考えています。種子の定義によって、同じ種子を持つ2つのランダムなジェネレーターが同じ出力を提供することになるであろう - それは種の全体の点である。 – charlemagne

+0

@ zandomatter:そうです。ありがとうございました。 – Ashwin

2

両方が同じシード値を使用する場合はどうなりますか?シーケンスは同じですか?

いいえ、間違いなくありません。少なくともOracleのJava 7 SDKの実装には含まれていません。私のサンプルコードin this SO postを参照してください。実装は、提供されたシードに加えて、追加の乱雑さのソースを使用することを選択できるようです。

関連する問題