在PHP中保护随机数生成

在PHP中保护随机数生成

使用案例:“我忘了密码”按钮。我们找不到用户的原始密码,因为它以散列形式存储,因此唯一要做的就是生成一个新的随机密码并通过电子邮件发送给他。这需要加密不可预测的随机数,mt_rand不够好,一般我们不能假设托管服务将提供对操作系统的访问以安装加密随机数模块等所以我正在寻找一种方法在PHP本身生成安全的随机数。

到目前为止我提出的解决方案涉及存储初始种子,然后为每次调用,

result = seed
seed = sha512(seed . mt_rand())

这是基于sha512哈希函数的安全性(mt_rand调用只是为了获得数据库副本的对手的生活有点困难)。

我错过了什么,还是有更好的解决方案?


茅侃侃
浏览 689回答 3
3回答
打开App,查看更多内容
随时随地看视频慕课网APP