首页 >后端开发 >php教程 >使用 PHP 的'password_hash()”时是否应该单独存储盐?

使用 PHP 的'password_hash()”时是否应该单独存储盐?

Barbara Streisand
Barbara Streisand原创
2024-12-29 06:23:10901浏览

Should I Store the Salt Separately When Using PHP's `password_hash()`?

使用PHP 5.5的password_hash和password_verify函数进行安全密码存储

问题:

当使用PHP 5.5的password_hash()函数来存储用户密码,盐是否应该与哈希分开存储?

答案:

不,将盐与哈希分开存储是不正确的。 password_hash() 函数生成一个包含哈希值和盐值的字符串。这是正确的使用方法:

$hashAndSalt = password_hash($password, PASSWORD_BCRYPT);
// Insert $hashAndSalt into database against user

验证密码:

if (password_verify($password, $hashAndSalt)) {
    // Verified
}

这种方法提供了最佳的安全性,因为它可以防止攻击者访问盐并破坏哈希值。另外,建议使用 mysqli 而不是 ext/mysql,后者在 PHP 5.5 中已弃用,并注意 SQL 注入漏洞。

以上是使用 PHP 的'password_hash()”时是否应该单独存储盐?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn