我试图建立一个登录功能,但没有一个登记制度比较哈希登录。这提出了一个问题,因为我不知道如何使mysql和php之间的哈希兼容。PHP数据库DB
我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哈希。
这里的问题是,我的password_verify
在PHP代码出现与MySQL的我更新哈希密码不符。因此,我遇到了我的else
命令,而不是我想要的代码。
想知道如何让我的MySQL密码栏与我的PHP代码兼容,或者反之亦然,或者如果有这种更实用的方式。
您需要使用'password_verify'的配对伴侣功能'password_hash'散列密码,在PHP方面,你应该使用默认的bcrypt算法。 – ceejayoz