私は Java 1.7 を使用しており、以下のコードが示すように (Ubuntu で Oracle の Java 7 コンパイラでコンパイルされています) 、コードが 2 つの疑似乱数シーケンスの開始値に対して 2 つの異なる BigInteger を生成するため、java.security.SecureRandomのシードは不要のようです。
import java.security.SecureRandom;
import java.math.BigInteger;
public class SessionIdTest {
public static void main (String args[]) {
long seed = System.currentTimeMillis();
{
SecureRandom random = new SecureRandom();
random.setSeed(seed);
BigInteger a = new BigInteger(130, random);
System.out.println(a);
}
{
SecureRandom random = new SecureRandom();
random.setSeed(seed);
BigInteger a = new BigInteger(130, random);
System.out.println(a);
}
}
}
それではsetSeedの目的は何ですか?それとも、シードに加えて、 SecureRandomもランダム性の他のソースを使用していますか?