我SecureRandom
用来生成随机数。
SecureRandom
如果对象是单例或每次生成随机数时都创建一个新对象,那么它对生成的下一个数字的可预测性有什么影响吗?
单身人士:
public RequestIdGenerator {
private static SecureRandom secureRandom = new SecureRandom();
public static int generateRequestId() {
secureRandom.nextInt(100_000_000);
}
}
对比
每次生成随机数的新对象:
public RequestIdGenerator {
public static int generateRequestId() {
new SecureRandom().nextInt(100_000_000);
}
}
这个问题是在阅读了与“线性同余生成器的可预测性”相关的答案后出现的。