有没有办法猜测下一个java随机数?

时间:2015-10-09 10:19:22

标签: java random

问题在标题中,在这里很新,所以对网站还不太了解。 想要使用hash来创建“更多随机性”但尚未确定Java的Math.Random(),是否有可能破解它?

1 个答案:

答案 0 :(得分:2)

如果您使用的是java.util.Random(),则可以。看看这个Code

为了更好的安全性,您必须使用SecureRandom,如下所示

SecureRandom secureRandomGenerator = SecureRandom.getInstance("SHA1PRNG");

但无法解决的最佳解决方案是使用Hardware for Random number generation.

编辑:

基于随机类似MersenneTwister的算法可以按Dan Petro <{1}} article进行攻击 要使用的

CSPRNGs(密码安全伪随机数生成器)是:

  1. 在类似Unix的系统上从/dev/urandom读取

  2. Java SecureRandom

  3. .NET RNGCryptoServiceProvider

  4. PHP openssl_random_pseudo_bytes()函数

  5. 相反,要避免的随机数生成器的一些示例是:

    1. libc rand()功能

    2. Java Random类

    3. .NET Random类

    4. PHP的rand()和mt _ rand()函数

    5. 请看托马斯·赫恩的article