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

Is there a way to guess the next number java random?

本问题已经有最佳答案,请猛点这里访问。

问题在标题中,这里很新,所以还不太了解这个网站。想要使用哈希来创建"更随机性",但还不确定Java的数学.Read(),是否有可能破解它?


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

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

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

但最好的解决办法是使用Hardware for Random number generation.

编辑:

基于类似mersennetwester的随机算法可以被Dan Petro根据本文进行黑客攻击。

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

  • 在类Unix系统上读取/dev/urandom

  • Java EDCOX1×1类

  • .NET RNGCryptoServiceProvider

  • php openssl_random_pseudo_bytes()函数

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

  • libc rand()函数

  • Java随机类

  • .NET随机类

  • php的rand()和mt的rand()函数

  • 看一看托马斯·胡恩的这篇文章