PHP何时为mt_rand()生成种子

时间:2015-12-16 17:46:00

标签: php random

当服务器重启时,PHP会生成种子(在mt_rand()中使用)吗? PHP存储此值的位置是什么?

我刚刚发现mt_rand()不安全,并尝试为它创建一个概念验证。

非常感谢!

2 个答案:

答案 0 :(得分:3)

mt_rand()会在第一次在请求中使用时自动播种,种子基于PID,当前时间戳和PHP的内部LCG(线性) Congruent Generator)....你可以在脚本执行的任何时候使用mt_srand()来覆盖它,使用你自己的种子重新种植。

请注意,mt_rand()不适用于加密应用程序,如PHP Docs中所述。如果您想要加密强度随机性,请使用文档化的加密强度生成器。

答案 1 :(得分:1)

  

我刚刚发现mt_rand()不安全,并尝试为它创建一个概念验证。

通过OpenWall查看php_mt_seed

如果您想要替代方案: