【发布时间】:2013-04-15 13:38:46
【问题描述】:
我需要使用一个键来伪随机地创建数字。 key 是一个转换为字节数组的字符串。 这就是我想出的:
int N=10;
int key[]= {13,10,1,5};
int tmp,j=0;
for (int i=0; i < N; i++) {
j = (j + key[i % key.length]) % N;
System.out.println(j);
}
此代码取自 RC4 的 PRNG 并进行了修改。它没有按预期工作,值重复。
【问题讨论】:
-
问题是什么?
-
以上代码不会随机生成 0 到 10 的数字。我以为这是暗示。 :)
-
如何判断输出不是随机的?
-
RC4 修改背后的原因是什么?为什么不使用
new SecureRandom(myByteArray)?注意,SecureRandom支持RC4 & ARCFOUR。 -
我可以使用securerandom随机生成一个范围内的所有数字吗?
标签: java random cryptography prng random-seed