PHP: password_verify 总是 returns 错误
PHP: password_verify always returns false
不知何故,我正在为一些我原以为很简单的事情而苦苦挣扎。我创建以下代码只是为了测试目的,如果提供的 $login_password 是“123456”,我希望它给出答案 "valid password"。但我总是得到 "Invalid password."
$login_password = $_POST['login_password'];
$login_password_hash = password_hash($login_password, PASSWORD_DEFAULT);
$target_password = '123456';
$target_password_hash = password_hash($target_password, PASSWORD_DEFAULT);
if ( password_verify($login_password_hash, $target_password_hash) ) {
echo "Valid password.";
}
else {
echo "Invalid password.";
}
我什至在更改 password_verify 以将同一变量与其自身进行比较时得到 "Invalid password.":
password_verify($login_password_hash, $login_password_hash)
非常感谢您的一点帮助:)
您需要传递没有散列的简单文本密码作为第一个参数
if ( password_verify($login_password , $target_password_hash) ) {
echo "Valid password.";
}
else {
echo "Invalid password.";
}
更改此中的第一行
if ( password_verify($login_password_hash, $target_password_hash) ) {
echo "Valid password.";
}
到
if ( password_verify($login_password, $target_password_hash) ) {
不知何故,我正在为一些我原以为很简单的事情而苦苦挣扎。我创建以下代码只是为了测试目的,如果提供的 $login_password 是“123456”,我希望它给出答案 "valid password"。但我总是得到 "Invalid password."
$login_password = $_POST['login_password'];
$login_password_hash = password_hash($login_password, PASSWORD_DEFAULT);
$target_password = '123456';
$target_password_hash = password_hash($target_password, PASSWORD_DEFAULT);
if ( password_verify($login_password_hash, $target_password_hash) ) {
echo "Valid password.";
}
else {
echo "Invalid password.";
}
我什至在更改 password_verify 以将同一变量与其自身进行比较时得到 "Invalid password.":
password_verify($login_password_hash, $login_password_hash)
非常感谢您的一点帮助:)
您需要传递没有散列的简单文本密码作为第一个参数
if ( password_verify($login_password , $target_password_hash) ) {
echo "Valid password.";
}
else {
echo "Invalid password.";
}
更改此中的第一行
if ( password_verify($login_password_hash, $target_password_hash) ) {
echo "Valid password.";
}
到
if ( password_verify($login_password, $target_password_hash) ) {