PHP数据库比较散列登录与db

时间:2017-06-17 19:30:31

标签: php mysql

我正在尝试构建登录功能但没有注册系统。这提出了一个问题,因为我不确定如何在mysql和php之间进行哈希兼容。

我的 PHP 代码:

    if (password_verify($upass, 'sha256') && $count == 1){
        $_SESSION['userSession'] = $row['uid'];
        header("Location:profilepage.php");
    }
    else {
     //SPLOSIONS!!
    }

$upass代表我的表单输入上的POST,用户输入他们的指定密码。

我尝试在 MySQL

中散列密码
 UPDATE users SET `userpassword` = SHA2(`userpassword`, 256)

userpassword与我的数据库中的userpassword列匹配,我已经使用SHA2进行了哈希处理。

这里的问题是PHP上的password_verify代码似乎与我在MySQL上更新的哈希密码不兼容。结果我遇到了else命令,而不是我想要的代码。

想知道如何使我的MySQL密码列与我的PHP代码兼容,反之亦然,或者是否有更实用的方法。

1 个答案:

答案 0 :(得分:1)

解决了!

添加了以下代码:

    $hashslingingslasher = password_hash($upass, PASSWORD_DEFAULT);

然后通过:

调用它
    if (password_verify($upass, $hashslingingslasher) && $count == 1){
        $_SESSION['userSession'] = $row['uid'];
        header("Location:userpage.php");
    }
相关问题