我需要检查$user_entered_pass
的{{1}}是否为$hash_val
。请帮帮我?
<?php
$mypass = "Rainbow";
$hash_val = md5($mypass);
echo $hash_val; //always 32 characters
$user_entered_pass = "rainbow";
?>
答案 0 :(得分:3)
你可以哈希$ user_entered_pass并进行比较,我使用这种方法。
<?php
$mypass = "Rainbow";
$hash_val = md5($mypass);
echo $hash_val; //always 32 characters
$user_entered_pass = "rainbow";
if(md5($user_entered_pass) == $hash_val){
//The passwords are equal
}
?>
答案 1 :(得分:0)
将用户输入的密码转换为md5,然后检查。
$user_entered_pass_has = md5($user_entered_pass)
然后检查是否相等。
答案 2 :(得分:0)
将它与相同的运算符===
进行比较,例如:
if ($hashFromDatabase === md5($userEnteredPasswort)) {
// authenticated ...
}
但是,我强烈建议您不要将md5用作散列算法。在这里查看这个答案:Secure hash and salt for PHP passwords
此外,我建议您使用PHP的新密码哈希API(password_hash()
和password_verify()
)。