我在创建帐户时散列密码,并且它可以工作(密码设置为VARCHAR(60)),但当我尝试这样做时:
$query = $this->CI->db->query("SELECT * FROM users WHERE email = ?", $email);
if ($query->num_rows() > 0) {
$user_pass = $query->row()->password;
$hasher = new PasswordHash(PHPASS_HASH_STRENGTH, PHPASS_HASH_PORTABLE);
if ($hasher->CheckPassword($user_pass, $pass)) {
return true;
} else {
return false;
}
} else {
return false;
}它总是返回false。有什么想法可以解释为什么会这样吗?(我提供的密码是正确的)
发布于 2012-09-27 17:02:48
我认为您已经颠倒了检查密码字段。必须是这样的:
$hasher->CheckPassword(password which has to be checked, password from database).这是有区别的,因为检查密码将对要检查的密码进行散列。
https://stackoverflow.com/questions/12087348
复制相似问题