1

我在创建帐户时对密码进行哈希处理,并且它可以工作(密码设置为 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;
    }

它总是返回假。关于为什么会这样的任何想法?(我提供的密码是正确的)

4

1 回答 1

1

我认为您已经反转了检查密码字段。它必须是这样的:

$hasher->CheckPassword(password which has to be checked, password from database).

这会有所不同,因为 Check Password 将对要检查的密码进行哈希处理。

于 2012-09-27T09:02:48.177 回答