[英]I can't seem to make password_verify() work
在將密碼存儲到數據庫之前,我會對其進行哈希處理。 當我想取回它並與用戶輸入進行比較時,我總是得到“密碼不匹配”。 我嘗試了很多修復,但似乎沒有任何效果。 可能是我的語法有問題,我不擅長 php。
if (mysqli_num_rows($result) > 0) {
// output data of each row
while($row = mysqli_fetch_assoc($result)) {
if (password_verify($RegisteredPass, $row['pass']))
{
echo "tchd";
echo "ID:".$row['id'] ."|Name:".$row['name']. "|User:".$row['user'];
}
else{
echo "pass doesn`t match";
}
}
} else {
echo "user not found";
}
哈希密碼
$hassedPassword = password_hash($password, PASSWORD_DEFAULT, ['cost' => 12]);
我不是很關心安全性,因為它只是一個項目。 我只需要讓它工作。
我像“重復”中那樣更改了 while 循環,但它仍然不起作用。 任何想法為什么?
$sql = "SELECT pass, id, name, user FROM unityTut WHERE user='".$RegisterUser."'";
$result = $conn->query($sql);
if ($result->num_rows === 1) {
$row = $result->fetch_array(MYSQLI_ASSOC);
if (password_verify($RegisteredPass, $row['pass'])) {
//Password matches, so create the session
echo "Match";
}else{
echo "The username or password do not match";
}
所以它現在起作用了!
登錄代碼:
$sql = "SELECT pass, id, name, user FROM unityTut WHERE user='".$RegisterUser."'";
$result = $conn->query($sql);
if ($result->num_rows === 1) {
$row = $result->fetch_array(MYSQLI_ASSOC);
if (password_verify($RegisteredPass, $row['pass'])) {
echo "Match";
}else{
echo "The username or password do not match";
}
// ...
VARCHAR(255)
似乎可以解決問題,但我必須刪除所有記錄並注冊新用戶。 這似乎也能解決問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.