我试图建立一个登录功能,但没有注册系统。这是一个问题,因为我不知道如何使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兼容,反之亦然,或者是否有一种更实用的方法。
发布于 2017-06-17 19:47:02
解决了!
添加了以下代码:
$hashslingingslasher = password_hash($upass, PASSWORD_DEFAULT);然后通过以下方式调用:
if (password_verify($upass, $hashslingingslasher) && $count == 1){
$_SESSION['userSession'] = $row['uid'];
header("Location:userpage.php");
}https://stackoverflow.com/questions/44608626
复制相似问题