【发布时间】:2015-08-20 14:25:13
【问题描述】:
我计划实现 MersenneTwister 算法以进行随机生成。由于它不安全,因此寻找设置从 SecureRandom 派生的种子
SecureRandom secureRandomGenerator = SecureRandom.getInstance("SHA1PRNG");
int seedSize = 100;
int[] seed = new int[seedSize];
for (int i=0; i <seedSize; i++) {
seed[i] = secureRandomGenerator.nextInt(Integer.MAX_VALUE);
}
randomGenerator = new MersenneTwister(seed);
我有两个问题
1) 为 SHA1PRNG 设置种子是坏主意还是好主意?
2) 如果这是个好主意,为 SHA1PRNG 设置种子以提高不可预测性的最佳方法是什么?
【问题讨论】: