password_verify始终返回false

时间:2020-04-28 23:36:49

标签: php authentication

我在获取password_verify来验证密码时遇到问题。

我使用

将密码存储在数据库中
password_hash($password, PASSWORD_DEFAULT)

在登录页面上,我让用户输入用户名和密码,并通过发布方法$_POST['pwd']检索输入(这是用户输入的密码)。

然后我从数据库中检索哈希密码,并与登录名中的密码进行对照

if(password_verify($password, $results['password']))

我似乎无法弄清楚为什么密码似乎从未匹配。我已经阅读了filter / escape可能会影响password_verify()并将其更改为同样的结果。任何帮助将不胜感激。

    <?PHP 
     include('connection.php');

    if(isset($_POST['submit'])){
    $username = trim(filter_input(INPUT_POST, 'username', FILTER_SANITIZE_STRING));
    $password = trim(filter_input(INPUT_POST, 'pwd', FILTER_SANITIZE_STRING));
    $sql = $db->query("SELECT password FROM users WHERE username = '$username'");
    $results = $sql->fetch(PDO::FETCH_ASSOC);

    $savedHash =  $results['password'];

    //echo $savedHash;

    if(password_verify($password, $savedhash)){
    echo "yes " . $password;
    }else{
    echo "no";
    }         
    ?>

0 个答案:

没有答案
相关问题