将数据库中的哈希密码与PHP MYSQLI中的用户输入进行比较

将数据库中的哈希密码与PHP MYSQLI中的用户输入进行比较,php,mysqli,crypt,Php,Mysqli,Crypt,如何将数据库中存储的散列密码与用户输入的密码进行比较,我需要进行thsi,以便用户可以登录 下面是我如何散列我的密码(使用phps-crypt方法) 这就是我将它们与用户输入进行比较的方式 $username = trim($_POST['username']); $password = crypt($_POST['password']); $sql = "SELECT * FROM accounts WHERE username = '{$username}'

如何将数据库中存储的散列密码与用户输入的密码进行比较,我需要进行thsi,以便用户可以登录

下面是我如何散列我的密码(使用phps-crypt方法)

这就是我将它们与用户输入进行比较的方式

$username = trim($_POST['username']);
        $password = crypt($_POST['password']);
        $sql = "SELECT * FROM accounts WHERE username = '{$username}'  &&  password = '{$password }'LIMIT 1";
        echo "$sql";
        $rs = $conn->query($sql);
        $numRows = $rs->num_rows;
        if($numRows == 1){
            echo "you may log in";
        }

我100%确信我输入的密码是正确的,但问题是mysql没有显示结果,

请查看for crypt,因为您没有提供SALT值,所以您将获得strage结果,结果往往是一个值的散列与另一个相同值的散列不匹配。

'{$username}'应该是'$username'对吗?这会有什么区别?但不管怎样,你都是对的
$username = trim($_POST['username']);
        $password = crypt($_POST['password']);
        $sql = "SELECT * FROM accounts WHERE username = '{$username}'  &&  password = '{$password }'LIMIT 1";
        echo "$sql";
        $rs = $conn->query($sql);
        $numRows = $rs->num_rows;
        if($numRows == 1){
            echo "you may log in";
        }