我試圖建立一個登錄功能,但沒有一個登記制度比較哈希登錄。這提出了一個問題,因爲我不知道如何使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