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

时间:2012-06-24 08:17:07

标签: php mysqli crypt

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

以下是我如何删除密码(使用phps crypt方法)

$hashedpass = crypt($password);
            $sql = "INSERT INTO accounts (username,password,email) VALUES('{$username}','{$hashedpass}','{$email}')";
            $conn->query($sql); 

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

$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没有显示结果,

1 个答案:

答案 0 :(得分:0)

看一下PHP documentation的crypt,因为你没有提供SALT值,你会得到结果,结果通常以一个值的哈希值与另一个相同值的哈希值不匹配。