【发布时间】:2010-03-04 03:00:43
【问题描述】:
来自这里的 C++ 世界,因此问题的性质...
我想在 Java 应用程序中使用单个 SecureRandom 生成器,但我需要一个类的多个实例来在构造函数中存储对它的引用,而不是复制。
所以,
public class MyClass {
private SecureRandom random;
public MyClass(SecureRandom _random) { random = _random };
... }
这会导致对同一个生成器的引用,还是它的副本?副本的问题在于,如果 SecureRandom 是伪随机对象,例如 SHA1PRNG,则一个接一个地构造多个 MyClass 对象将导致相同的序列。我需要的是他们共享一个,这样对 random.nextBytes(...) 的调用序列将在每个 MyClass 实例中给我不同的结果。
(顺便说一句,每次在主应用程序中创建 SecureRandom 的新实例时,SHA1PRNG 是否保证以不同的方式播种,并且希望以比当时更安全的方式播种?)
【问题讨论】: