【发布时间】:2014-10-02 04:36:10
【问题描述】:
我有以下函数对密码进行哈希处理并将其存储在数据库中。我正在尝试在 php 5.5 中使用 password_hash 函数,但它给了我奇怪的结果。
function hashpass($password)
{
include("includes/config.php");
$password = password_hash($password, PASSWORD_DEFAULT);
return $password;
}
然后我将我正在测试的相同静态密码的结果输出为“testpassword”,并且它不断给我不同的哈希值。这是为什么?如果它继续这样做,我将永远无法验证密码,因为它永远不会为完全相同的字符串产生相同的哈希值。
我需要事先配置或设置什么才能使其正常工作吗?
【问题讨论】:
-
因为生成的哈希每次都包含一个随机盐。使用
password_verify()验证密码。 -
哈希每次都包含一个随机生成的盐。每个哈希使用不同的盐是一件好事。 salt 包含在哈希字符串中,因此可以在以后用于验证。
-
谷歌
bcrypt。还有RTFM(返回值部分)。 -
@Sammitch 我建议将您的评论转换为答案。 )
-
@Sammitch 不仅是盐,还有算法和成本。
标签: php password-hash php-password-hash