gpt4 book ai didi

php - 如何使用河豚自动为crypt方法生成盐

转载 作者:可可西里 更新时间:2023-11-01 13:40:17 26 4
gpt4 key购买 nike

我刚开始学习 PHP,我想为我最后一年的大学项目创建一个带有登录名的网站。我读过河豚是在许多地方散列的最佳方法,如下所示:openssl_digest vs hash vs hash_hmac? Difference between SALT & HMAC?

我读到的有关 crypt 方法的任何地方都包含一个字符串,如 $2y$07$usesomesillystringforsalt$ 我的主要问题是:我如何随机生成它?我在一些地方读到时间戳和 mt_rand() 不安全。

我还听说 AES 是最近的首选技术,但据我所知,用 PHP 实现它似乎非常棘手! blowfish 仍然是一种可以接受的保护存储密码的方法吗?

最佳答案

盐应该唯一(对于每个密码)并且不可预测。这两个标准有点难以用确定性计算机来满足,所以您能做的最好的事情就是使用操作系统的随机源来生成盐。

时间戳,以及mt_rand()功能,并不理想,因为可以说它们是可预测的。至少攻击者可以缩小(并因此预先计算)特定时期的可能组合。虽然这在实践中可能不会产生太大影响,但为什么不尽力而为呢?

从 PHP 5.3 开始,您可以安全地使用 mcrypt_create_iv()函数从随机源读取,那么你必须将二进制字符串编码为允许的字母表。这是 possible implementation .

PHP 5.5 将拥有自己的函数 password_hash()password_verify()准备好,简化这个任务。还有一个compatibility pack适用于 PHP 5.3/5.4,可在 password_compat 下载.

关于php - 如何使用河豚自动为crypt方法生成盐,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13556516/

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