簡體   English   中英

MySQL / PHP-數據庫用戶登錄轉換

[英]MySQL/PHP - Database User Login Conversion

我有一個vBulletin數據庫,我試圖將用戶切換到自定義系統,我已經轉換了用戶名和密碼,然后將MD5的雙倍密碼轉換為SHA256,但是我遇到了一個問題,這是鹽。

轉換舊的vBulletin鹽或檢查密碼是否正確,然后在他們首次登錄時生成新鹽的最簡單方法是什么?

檢查腳本:

$vbconvert = md5(md5($_POST["password"]));
$check_password = hash('sha256', $vbconvert . $row['salt']); 
for($round = 0; $round < 65536; $round++) 
{ 
      $check_password = hash('sha256', $check_password . $row['salt']); 
} 

if($check_password === $row['password']) 
{ 

      $login_ok = true; 
} 

簡而言之,轉換或創建新鹽的最簡單方法是什么?

您是否了解PHP函數password_hash() ,這是對密碼進行哈希處理的推薦方法。 它會自動為每個密碼生成一個密碼安全的鹽,並將其包含在所得的60個字符的字符串中。

$2y$10$nOUIs5kJ7naTuTFkBy1veuK0kSxUFXfuaOKdOKf9xYT0KKIGSJwFa

上面的示例是password_hash()的可能結果,請看$nOUIs5kJ7naTuTFkBy1veu部分,這是生成的鹽,函數password_verify()將使用它來檢查密碼。

您將不必再擔心鹽分的問題,不需要其他數據庫字段,只需存儲哈希值就可以了!

遷移密碼的最簡單方法是等待用戶下次登錄。 當他輸入密碼時,您可以檢查哈希是否已經遷移,然后使用password_verify()檢查。 如果尚未遷移,則使用舊的vBulletin代碼進行檢查,如果密碼正確,則使用password_hash()生成新的哈希並將其存儲。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM