运行此代码后,我的密码无效。为什么密码与散列密码不匹配?
<?php
$passwd = "imad";
$hash = password_hash($passwd,PASSWORD_DEFAULT,['cost'=>10]);
echo "$passwd".' :'.$hash."<br/><br/>";
if (password_verify($passwd, $hash,['cost'=>10])) {
echo 'Password is valid!';
} else {
echo 'Invalid password.';
}
?>
答案 0 :(得分:0)
password_verify
只需要2个参数。
所以你需要做的只是:
if(password_verify($passwd, $hash)) { ... }
以上代码可以缩短为:
(password_verify($passwd, $hash)) ? : echo "Password is valid!" : echo "Password is invalid."
同样转向error_reporting
是一个好主意,通常是在开发时。
所以说:
ini_set("display_errors", "1");
error_reporting(E_ALL);
位于文件顶部。
当你要将它移到生产阶段时,将它们移除。