【发布时间】:2015-10-05 01:25:21
【问题描述】:
使用SecureRandom 是否有保证 2 个连续调用不会返回相同的数字?
如果这是客户端 API 端的严格要求,那么代码中的以下循环是否多余?
Random random = SecureRandom.getInstance("SHA1PRNG");
long value1 = (long)(r.nextDouble() * LIMIT) + 1;
long value2 = (long)(r.nextDouble() * LIMIT);
while(value1 == value2) {
value2 = (long)(r.nextDouble() * LIMIT);
}
【问题讨论】:
-
这样的保证会违背随机性,所以不会:)
标签: java random integer sha1 secure-random