PHP-password_verify与password_hash不匹配

时间:2019-03-25 14:51:16

标签: php pdo fetch

我正在制作一个注册和登录表单,注册使用password_hash完成。

它可以正确插入数据库,但是一旦我尝试登录,哈希密码(输入的登录密码)就与数据库内部密码不同。

这是我登录的地方:

require('database.php');
    $username = $_POST['pseudo'];
    $realpass = $_POST['password'];
    //echo $username;
    //echo $realpass;
    //$password = password_hash($realpass, PASSWORD_DEFAULT);
    //echo $password;
    $query = $dbh->prepare("SELECT `password` FROM my_user WHERE `login` = ?");
    $query->bindParam(1, $username);
    $query->execute();
    $hashed = $query->fetch();
    echo $hashed[0];
    if(password_verify($realpass,$hashed[0])){
        echo 'mdp est bon';
    }else {
        echo "n'est pas bon";
    }

在这里我将密码哈希以将其插入数据库:

 require('database.php');
    $newpass = password_hash($password, PASSWORD_DEFAULT);
    $stmt = $dbh->prepare("INSERT INTO my_user (login, password, email) VALUES (?,?,?)");
    $stmt->bindParam(1, $login);
    $stmt->bindParam(2, $newpass);
    $stmt->bindParam(3, $email);
    $stmt->execute();
    header('Refresh:5; url=login.php');

当我echo $hashed[0];与新的散列不匹配

0 个答案:

没有答案