2017-05-24 280 views
0

自從我使用Wordpress以來已經有一段時間了,但我被要求查看一個看起來不起作用的自定義身份驗證插件。我只是複製並粘貼了我看起來無法正常工作的相關代碼片段。檢查密碼總是顯示不正確。自定義Wordpress身份驗證插件無法正常工作

$user = $_GET['user']; 
$pass = $_GET['pass']; 
$hash = wp_hash_password('$pass'); 

$query = mysqli_query($con, "Select * from users where username='$user'"); 

while($row = mysqli_fetch_array($query)) { 
$check = wp_check_password($pass, $hash) 
} 

$ check ALWAYS等於false。有人有主意嗎?另外,wp_hash_password不會每次都做一個不同的散列,因爲它會給它添加鹽分?例如;當我寫

$hash = wp_hash_password('pizza'); echo $hash;

哈希始終是不同的。因此,如何如果哈希始終是不同的CAN

wp_check_password($pass,$hash)

工作?

我真的很感謝所有幫助

回答

0

檢查wp-config.phpsecret key definitions,因爲他們可以通過鹽析它改變身份驗證的哈希。如果他們在那裏,則可能需要使用wp_salt來將密碼與數據庫進行比較。

編輯: 密鑰也存在於數據庫的選項表中。它們可以從wp-config.php或數據庫中應用。如果您的網站在過去已被移動或編輯過,您可能需要檢查兩個地方,以確定WordPress是否竄改密碼。

+0

謝謝你的回答!你知道我該如何將鹽傳遞給散列函數? –

+0

您可以使用'wp_check_password'將純文本密碼與數據庫中的哈希進行比較,而無需自己對密碼進行哈希處理? –

+0

感謝您的回覆。我嘗試過,但不幸的是,它總是回來作爲假 –