我不知道为什么不能使用mysqli来验证加密密码这里是我验证密码的代码。
<?php
$sql = $mysqli->query("SELECT * FROM accounts WHERE username ='$username'");
$row = mysqli_fetch_array($sql,MYSQLI_ASSOC);
$hash = $row['password'];
if (password_verify($hash, $password)){
echo "password valid";
}else{
echo "password invalid";
}
?>
这是我用来加密的密码。
<?php
$encrypted = password_hash($password, PASSWORD_DEFAULT);
?>
我的密码验证码始终返回虚假陈述。 我已经检查过我的代码是否真的从数据库中获取加密密码。 我的代码有什么问题吗?
答案 0 :(得分:2)
您对password_verify
的位置参数使用了错误的顺序:首先应该是密码,然后是哈希:
password_verify($password, $hash)
有关其他详细信息,请refer to the documentation。