首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有办法猜测下一个数字java随机数吗?

问有办法猜测下一个数字java随机数吗?
EN

Stack Overflow用户
提问于 2015-10-09 10:19:22
回答 1查看 2.1K关注 0票数 0

问题在标题中,非常新,所以还不太了解该网站。想要使用散列来创建“更多的随机性”,但还不能确定Math.Random(),它有可能破解它吗?

EN

回答 1

Stack Overflow用户

发布于 2015-10-09 10:27:12

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

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

代码语言:javascript
复制
SecureRandom secureRandomGenerator = SecureRandom.getInstance("SHA1PRNG");

但是最好的解决方案,也就是不能破解的方法是使用Hardware for Random number generation.

编辑:

基于随机类MersenneTwister的算法可以根据这个文章被Dan Petro黑客攻击。

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

  1. 在类Unix系统上读取/dev/urandom
  2. Java SecureRandom类
  3. .NET RNGCryptoServiceProvider类
  4. PHP openssl_random_pseudo_bytes()函数

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

  1. libc rand()函数
  2. Java随机类
  3. .NET随机类
  4. PHP的rand()和mt_rand()函数

看一下托马斯·胡恩的“文章”

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33035721

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档