【发布时间】:2013-04-28 10:37:49
【问题描述】:
我看到了那些文章:
- http://phpsecurity.readthedocs.org/en/latest/Insufficient-Entropy-For-Random-Values.html
- http://crypto.di.uoa.gr/CRYPTO.SEC/Randomness_Attacks_files/paper.pdf
展示了如何恢复mt_rand() 函数的种子。附加代码可以在一分钟内(或更快)从第一个 mt_rand() 暴力破解种子。事实上,大多数 PHP 应用程序都使用带有范围参数的 mt_rand。这会截断结果。我的问题是它是否使它更难破解?首先,我可以想象一个人不能只用一个数字来强制它。他需要有一个完整的序列。它会使破解过程显着延长还是无关紧要? mt_rand(from, to) 是否比 mt_rand() 更安全?
【问题讨论】:
-
关于 rand 函数的精彩解释:stackoverflow.com/questions/12729459/…
-
顺便说一句,但如果您需要避免此类事情,因为重要的事情取决于它,您希望使用加密安全的 RNG,而不是尝试破解您自己的。跨度>
-
如果出于安全考虑,请使用加密 PRNG。如
mcrypt_create_iv