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) ) {