如何使用mysqli验证加密密码?

时间:2017-08-23 11:44:51

标签: php php-password-hash

我不知道为什么不能使用mysqli来验证加密密码这里是我验证密码的代码。

<?php
        $sql = $mysqli->query("SELECT * FROM accounts WHERE username ='$username'");
        $row = mysqli_fetch_array($sql,MYSQLI_ASSOC);
        $hash = $row['password'];

        if (password_verify($hash, $password)){
            echo "password valid";

        }else{
             echo "password invalid";
        }

?>

这是我用来加密的密码。

<?php

        $encrypted = password_hash($password, PASSWORD_DEFAULT);
?>

我的密码验证码始终返回虚假陈述。   我已经检查过我的代码是否真的从数据库中获取加密密码。   我的代码有什么问题吗?

1 个答案:

答案 0 :(得分:2)

您对password_verify的位置参数使用了错误的顺序:首先应该是密码,然后是哈希:

password_verify($password, $hash)

有关其他详细信息,请refer to the documentation