我已经开始使用password_hash()进行密码散列。我遇到的问题是,当我使用password_verify()检查输入值是否与存储在数据库中的散列密码相匹配时,每次都返回false。PHP:密码散列
$password = "test";
$query = "SELECT password FROM user WHERE password = :pass ";
$statement = $connection->prepare($query);
$statement->bindParam(":pass", $password);
$statement->execute();
if(password_verify($password, $row['password'])){
echo "Password Valid";
}
else {
echo "Invalid Password";
}
但是,如果e.g我从数据库中复制单个哈希密码值,并把它放在$行[“密码”]的地方,当我测试的代码,它返回我真。
if(password_verify($password, '$2y$10$kc09i9YSP.ExmUquMqRnf......')){
echo "Password Valid";
}
请帮忙。
检查以下链接 http://stackoverflow.com/questions/19855715/php-password-hash-and-password-verify-issues-no -match 谢谢! –
'SELECT password WHERE password =:password' - really‽ – deceze