我正在尝试构建登录功能但没有注册系统。这提出了一个问题,因为我不确定如何在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代码兼容,反之亦然,或者是否有更实用的方法。
答案 0 :(得分:1)
解决了!
添加了以下代码:
$hashslingingslasher = password_hash($upass, PASSWORD_DEFAULT);
然后通过:
调用它 if (password_verify($upass, $hashslingingslasher) && $count == 1){
$_SESSION['userSession'] = $row['uid'];
header("Location:userpage.php");
}