gpt4 book ai didi

php - 如何在 PHP 中使用 Blowfish 创建和存储密码哈希

转载 作者:IT王子 更新时间:2023-10-29 01:19:23 27 4
gpt4 key购买 nike

1) 如何使用 crypt() 创建安全的 Blowfish 密码哈希?

$hash = crypt('somePassword', '$2a$07$nGYCCmhrzjrgdcxjH$');

1a) “$2a”的意义是什么?是不是仅仅表示应该使用Blowfish算法?
1b) “$07”的意义是什么?较高的值是否意味着更安全的哈希?
1c) “$nGYCCmhrzjrgdcxjH$”的意义是什么?这是要使用的盐吗?这应该是随机生成的吗?硬编码?

2) 如何存储 Blowfish 哈希?

echo $hash;
//Output: $2a$07$nGYCCmhrzjrgdcxjH$$$$.xLJMTJxaRa12DnhpAJmKQw.NXXZHgyq

2a) 其中哪一部分应该存储在数据库中?
2b) 列(MySQL)应该使用什么数据类型?

3) 应该如何验证登录尝试?

最佳答案

您应该存储 crypt 的整个输出,将其拆分并没有多大意义,因为无论如何您都需要为每个要散列的密码生成一个新的盐。使用 Matt 提到的固定隐藏盐是错误的 - 每个哈希的盐应该不同。

有关详细信息,请参阅 http://www.openwall.com/articles/PHP-Users-Passwords - 我推荐使用 phpass 库,因为它会为您生成随机盐,这与 crypt() 不同。

关于php - 如何在 PHP 中使用 Blowfish 创建和存储密码哈希,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4983697/

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