我有以下函数,可以对密码进行哈希处理并将其存储在数据库中。我正在尝试使用 php 5.5 中的password_hash 函数,但它给了我奇怪的结果。
function hashpass($password)
{
include("includes/config.php");
$password = password_hash($password, PASSWORD_DEFAULT);
return $password;
}
然后,我输出相同静态密码的结果,我只是将其测试为“testpassword”,并且它不断给我不同的哈希值。这是为什么?如果它继续这样做,我将永远无法验证密码,因为它永远不会为完全相同的字符串产生相同的哈希值。
我需要事先配置或设置一些东西才能正常工作吗?
当您使用以下命令对密码进行哈希处理时password_hash
, a 随机盐正在生成,在散列过程中使用并添加到结果中。这正是为了避免每次使用相同的密码导致相同的哈希值;以避免容易生成彩虹表。 (所有术语你可能应该用谷歌搜索。:))
验证生成的哈希值password_hash
你需要使用password_verify http://php.net/password_verify,它使用嵌入在哈希中的盐来重现并比较来自另一个明文密码的哈希。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)