出于基准测试的目的,我希望 SecureRandom 产生确定性的输出。这是否可以通过使用种子(或者算法的规范)来实现?
import java.security.SecureRandom;
class TestSecureRandom {
public static void main(String [] args) {
SecureRandom rnd = new SecureRandom();
rnd.setSeed(1);
System.out.println(rnd.nextInt());
}
}
对我来说,即使指定了种子,上述程序也会产生不同的值。
最简单的方法可能是让你的大部分代码只依赖于Random
,并注入一个实例(例如,通过将其传递给构造函数)。这样,出于测试目的,您可以传递一个简单的Random
具有固定种子 - 但对于real在需要安全性的地方运行,您可以传入一个实例SecureRandom
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)