gpt4 book ai didi

php - PHP mt_rand 种子如何?

转载 作者:行者123 更新时间:2023-12-03 00:04:36 25 4
gpt4 key购买 nike

我知道 PHP 的 mt_rand() 不应该用于安全目的,因为它的结果在加密方面不强。然而,许多 PHP 代码就是这样做的,或者在没有更好的随机性来源时将其用作后备。

那么情况有多糟糕呢? mt_rand 使用哪些随机源进行播种?对于加密应用程序来说,mt_rand 还存在其他安全问题吗?

最佳答案

在 PHP 5.4 中,如果 mt_rand 在第一次使用时自动设定种子 ( PHP source )。 seed value是当前时间戳、PHP 进程 PID 和 PHP 内部产生的值 LCG 的函数。我没有检查以前版本的 PHP 的源代码,但 documentation意味着该播种算法从 PHP 5.2.1 开始使用。

mt_rand 背后的 RNG 算法是 Mersenne Twister 。谈论它“有多糟糕”并没有什么意义,因为它有明确的记录(不幸的是,PHP 文档页面上没有)它完全不适合加密应用程序。如果您想要加密强度随机性,请使用记录的加​​密强度生成器。

更新:您可能还想查看 this question来自 crypto.SE。

关于php - PHP mt_rand 种子如何?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11358691/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com