gpt4 book ai didi

php - 将 crypt() salt 存储在数据库中以进行密码比较是否安全

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

请原谅我,我对密码安全和加密完全陌生......

我在比较使用 php 的 crypt() 函数(使用 blowfish hasing 方法)加密的存储密码与用户输入时遇到问题。我发现可以比较密码的一种方法是存储加密期间使用的盐,然后加密用户输入并将其与存储的密码进行比较。

这是一种安全的做事方式吗?还是有更好(更安全)的方法?

谢谢。

最佳答案

PHP 生成散列的函数会将盐包含在生成的散列值中。所以如果你存储这个散列值,你就已经存储了盐。验证函数只需提取此盐并再次使用它进行验证即可。这种方法是安全的,盐不是 secret 。

PHP 5.5 版将内置对 BCrypt 的支持,函数 password_hash()和 password_verify()。实际上,这些只是函数 crypt() 的包装器,将使它更容易正确使用。它负责生成安全的随机盐,并提供良好的默认值。对于 PHP 5.3.7 及更高版本,存在一个 compatibility pack .

使用此功能的最简单方法是:

$hashToStoreInDb = password_hash($password, PASSWORD_BCRYPT);
$isPasswordCorrect = password_verify($password, $existingHashFromDb);

关于php - 将 crypt() salt 存储在数据库中以进行密码比较是否安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17034150/

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