在 PHP 中生成盐

2022-08-30 21:59:07

在 PHP 中生成加密安全的 32 字节 salt 的最佳方式是什么,而不依赖于典型 PHP 安装中很少包含的库?

经过一些谷歌搜索,我发现这被认为不够安全,但我还没有找到更换的建议。一篇文章建议阅读,但不仅这样在Windows上不起作用;它也非常慢。mt_rand/dev/random

我想要在安全性和速度之间取得合理的平衡(即,生成512字节不应该像通常那样需要20秒)/dev/random


答案 1

这在 PHP 7 中更容易:只需使用 $salt = random_bytes($numberOfDesiredBytes); 即可生成盐。

你到底需要盐做什么?如果是密码,只需使用password_hash()和password_verify())。


答案 2

注意:在 PHP 7.1 中已弃用。跳转到最新答案mcrypt

您可能需要查看mcrypt_create_iv()的文档(和注释)。


推荐