gpt4 book ai didi

每个字符串的 PHP password_hash 函数值不相同

转载 作者:可可西里 更新时间:2023-11-01 00:02:25 25 4
gpt4 key购买 nike

我尝试使用 password_hash() PHP 函数来散列用户密码。但是,它的函数是工作散列,而不是常量。

<?php 
echo password_hash('a',PASSWORD_BCRYPT,array(
'cost' => 12
));
?>

第四次测试结果

1. $2y$12$SRmipqM7AsYkx3Xc8QGHNex69rGXeVyWGTYrh9T8sh1cP3UrdjfQi
2. $2y$12$zx.GUgtcake3wMfl3/YXXeG1.8mmHKyRruL3nWj8OmA.RbEYqeW6u
3. $2y$12$XQtmFplcehkgWLbGrOUsNOlXDU/NGrwZlt3HM88hLbUHXhjXNF4km
4. $2y$12$q9/OSZdDJw7af4Hw4MGlHeY7UMtWr9/Cj0nj/N6PaoilNoUBePt7O

最佳答案

正如一些人建议使用 MD5,不要将其用于密码散列。

现在来回答你的问题如何检查密码是否匹配

Password_Hash() 是生成一个密码哈希,它会生成一个随机盐,这个哈希将在哈希时使用。你的最终结果将是:salt+hash,但是你可以在它的选项中使用这个方法给它一个 salt 但让我们保持它自己完成它。

Password_Verify() 使用一个参数作为密码,一个参数作为散列密码。正如我之前所说,散列密码是 salt+hash这是有道理的 Password_Verify() 只需要这些而不需要额外的 salt

那么 Password_Verify() 发生的事情是它取出盐并使用 Password_Hash() 和盐。然后检查接收到的哈希值是否等于给定的哈希值。如果匹配则为真,否则为假。

Password_Hash() Doc

Password_Verify() Doc


更新 18-04-2018 (d-m-Y)

WARNING

The salt option has been deprecated as of PHP 7.0.0.

It is now preferred to simply use the salt that is generated by default.

More information about Salting - SO Answer below by Veve

Why not to use MD5 for Password Hashing - PHP FaQ Answer

Why not to use MD5 for Password Hashing - SO Answer by: Silverlightfox

关于每个字符串的 PHP password_hash 函数值不相同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28626278/

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