我正在尝试使用该函数创建一个IV:
mcrypt_create_iv(32,MCRYPT_DEV_RANDOM)
这会导致脚本超过60秒后超时. (也许更多?)但是当我使用URANDOM时,它几乎可以立即正常工作.根据我的阅读,使用MCRYPT_DEV_RANDOM需要大约4秒钟,但这肯定花了太长时间.错误日志中没有任何内容.
我在ubuntu 12.04服务器上安装了apache2和PHP5.
我在我的centos服务器上运行完全相同的代码没有问题.
RANDOM和Unblocking-RANDOM(URANDOM)都会为您提供随机数据,但如果“熵井”由于过度使用而干涸,并且在补充时重新启动,则RANDOM将阻塞,而URANDOM则不会.
亲:URANDOM不会阻止.
Con:URANDOM,如果没有熵,就会给你提供非真实的随机数据.
对于加密目的,除非你真的是偏执狂,我认为URANDOM应该足够了.
看到这个Ubuntu页面:
http://manpages.ubuntu.com/manpages/jaunty/man4/random.4.html
我(错误地)认为RANDOM源是用户可控的,但看起来它们不是.显然,在那台计算机上没有发生太多事情,因此内核熵生成器没有发现任何问题.
从好的方面来说,URANDOM发电机据说非常好,几乎应有尽有.
(我正在编辑我之前的一些不适合你的建议,因为它们至少需要重新编译PHP).