SHA 512散列和验证

时间:2017-01-13 19:31:17

标签: php hash sha512

好吧所以我试图用SHA 512来验证密码,但无论它仍然返回false,就像哈希检查不正确一样。

注册时生成哈希

$hashed = password_hash(hash('sha512', $password), PASSWORD_DEFAULT);

要验证(登录时)我使用简单的

public function isValidLogin($username, $password) {
    $sql = $this->connect();
    $sql->real_escape_string($username);
    $sql->real_escape_string($password);

    $res = $sql->query("SELECT password FROM users WHERE name='".$username."'");

    if ($res->num_rows >= 1) {
        while($row = $res->fetch_assoc()) {
            if (password_verify(hash('sha512', $password), $row['password'])) {
                return true;
            }
        }
    }

    return false;
}

2 个答案:

答案 0 :(得分:2)

在注册时尝试此代码而不是代码。

 $hashed = hash("sha512", $password);

答案 1 :(得分:-1)

// original password
$_password = 'bluebeans123';

$password = hash('sha512', $_password);
$password = password_hash($password, PASSWORD_DEFAULT);

var_dump($password);

$verify = hash('sha512', $_password);
$verify = password_verify($verify, $password);

var_dump($verify);

详细说明:http://wiki.travisfont.com/PHP:Passwords(hash_w/_SHA512)