我正在使用password_hash
函数将哈希作为用户注册的一部分插入数据库。这很好用,并在数据库中创建密码哈希。但是,我无法使用password_verify
验证密码,检查始终返回false。例如:
$hash = password_hash("rattle",PASSWORD_DEFAULT)
returns `$hash = $2y$10$fonFqdioDtfJ/Gp7t4orWOdalMHkKQSA8PrFvbgI7LC0LCvYshZ.i`
这已成功插入数据库。但是,password_verify('rattle',$hash)
始终返回false
。我已经尝试在将哈希插入数据库并使用它作为哈希之前回显哈希,但仍然没有乐趣。数据库哈希字段设置为60 char。
非常感谢任何帮助。
答案 0 :(得分:0)
经过测试,适用于已保存的字符串和动态。总是60个字符。
$hash = password_hash("rattle",PASSWORD_DEFAULT);
$hashCheckSaved = password_verify("rattle", '$2y$10$KDIzEQjsmlHCP0mjixbBoe9yJE8tY4aNPOZegiwez1zUPkt5217M2');
$hashCheckDynamic = password_verify("rattle", $hash);
echo $hash."<br> saved(". $hashCheckSaved . ") dynamic(". $hashCheckDynamic.")";
echo "<br>";
echo strlen($hash) . " chars in this string";