在java中播种安全随机数

时间:2012-03-08 00:39:01

标签: java random prng

使用相同值播种的两个java.security.SecureRandom实例最初会给出相同的随机数序列吗?

我问这个是因为我想在客户端和服务器中使用相同的随机数序列。如果它们都使用相同的种子值会怎样。序列是否相同,或者是否可以使序列相同?

2 个答案:

答案 0 :(得分:8)

来自the API docs

  

如果使用相同的种子创建了两个Random实例,并且为每个实例创建了相同的方法调用序列,它们将生成并返回相同的数字序列。

答案 1 :(得分:2)

  

如果它们都使用相同的种子值,该怎么办?顺序是否相同?

不,他们肯定不会。至少在Oracle的Java 7 SDK实现中没有。请参阅我的示例代码in this SO post。除了提供的种子之外,实施似乎可以选择使用其他随机源。