在嘗試使用儲存在MySQL 中的加鹽密碼實作會員網站時,您可能會遇到以下問題:會員登入頁面接受任何輸入。本文解決了這個問題,提供了一個基於密碼加鹽和雜湊概念的解決方案。
為了增強安全性,密碼在儲存在資料庫中。加鹽涉及向密碼添加隨機字串,而散列將結果轉換為安全的單向值。此過程可防止攻擊者直接檢索實際密碼,即使他們獲得了資料庫的存取權限。
要擷取加鹽密碼,您需要:
取得雜湊值後,您可以根據資料庫中儲存的雜湊密碼進行驗證:
$sqlQuery = "SELECT * FROM users WHERE name = '$name' AND password = '$hashedPW'"; if (mysqli_query($connect, $sqlQuery)){ echo '<h1>Welcome to the member site '.$name.'</h1>'; }else{ echo 'error adding the query: '.$sql_q.'<br> Reason: '.mysqli_error($connect); }
在此程式碼中,如果哈希值匹配,則登入為成功的。否則,會顯示錯誤。
密碼驗證的另一種方法是使用password_hash()和password_verify()函數:
$hashFromDb = ...; // retrieve the stored password hash $isPasswordCorrect = password_verify($_POST['password'], $hashFromDb);
這些函數自動處理加鹽和散列過程,簡化密碼驗證。
以上是如何從資料庫中檢索加鹽密碼以進行使用者身份驗證?的詳細內容。更多資訊請關注PHP中文網其他相關文章!