MCRYPT_DEV_RANDOM冻结但MCRYPT_DEV_URANDOM正常工作

mac*_*bby 8 php mcrypt

我正在尝试使用该函数创建一个IV:

mcrypt_create_iv(32, MCRYPT_DEV_RANDOM)
Run Code Online (Sandbox Code Playgroud)

这会导致脚本超过60秒后超时.(也许更多?)但是当我使用时URANDOM,它几乎可以立即正常工作.从我读到的它应该需要大约4秒钟MCRYPT_DEV_RANDOM,但它肯定需要太长时间.错误日志中没有任何内容.

我在ubuntu 12.04服务器上安装了apache2和php5.

我在我的centos服务器上运行完全相同的代码没有问题.

LSe*_*rni 16

RANDOM和Unblocking-RANDOM(URANDOM)都会为您提供随机数据,但如果"熵井"由于过度使用而干涸,并且在补充时重新启动,RANDOM将阻塞,而URANDOM则不会.

亲:URANDOM不会阻止.Con:URANDOM,如果没有熵,就会给你提供非真实的随机数据.

对于加密目的,除非你真的是偏执狂,我认为URANDOM应该足够了.

请参阅此Ubuntu页面:http: //manpages.ubuntu.com/manpages/jaunty/man4/random.4.html

我(错误地)认为RANDOM源是用户可控的,但看起来它们不是.显然,在那台计算机上没有发生太多事情,因此内核熵生成器没有发现任何问题.

从好的方面来说,URANDOM发电机据说非常好,几乎应有尽有.

(我正在编辑我之前的一些不适合你的建议,因为它们至少需要重新编译PHP).

  • +1,"作为一般规则,/ dev/urandom应该用于除长期GPG/SSL/SSH密钥之外的所有内容". (7认同)