2012-06-18 127 views
0

我的數據庫中的密碼現在是文本,我只是想知道我可以使用md5()函數將密碼轉換爲哈希值,但現在我想將數據庫中的所有用戶轉換爲哈希值要做到這一點,所以我不應該要告訴大家重新輸入自己的密碼,將密碼轉換爲哈希值PHP

這個問題是不與任何其他問題一樣Convert text passwords in database to hashed passwords?重複的,因爲我想知道一個想法如何做到這一點在PHP和Secure hash and salt for PHP passwords也不重複,因爲我想更改已存在於我的數據庫中的所有密碼我不應該要求我的所有用戶更改他們的密碼,如上所述,

任何想法?

+1

不要使用'md5',使用其他類似'whirlpool'的東西。有太多的彩虹表可用於'md5',以及其他問題。 – Brad

+0

@Brad Ok將會這樣做,但我想要一個想法來轉換已存在於數據庫中的所有密碼 – thegrede

+5

創建一個新列。將列A中的所有密碼轉換爲列B中的加密字符串。目視檢查表以確保列A沒有任何加密密碼。將列B重命名爲「列A」,並將列A重命名爲「列Z」。在刪除Z列前等待幾個星期,以確保所有事情都能順利進行。譴責自己首先不使用加密密碼。 – Blazemonger

回答

1

所有你需要爲你的例子做的是通過散列運行每個密碼(我推薦它不是md5,因爲那個現在已經知道了弱點)並且存儲回散列。然後,當有人嘗試登錄時,取出他們的密碼並將其散列,然後將散列與您在數據庫中的散列進行比較。如果您當前存儲明文,則不必要求用戶租用任何內容,只需散列您已有的內容即可。