2013-06-11 42 views
0

我有點困難。我的mysql 4.1.0數據庫必須升級(1and1),但似乎應用程序使用PASSWORD()進行散列。使用mysql 5升級PASSWORD()會給出完全不同的結果,因爲密碼無法正確讀取和驗證。MYSQL 4密碼哈希 - > MYSQL 5

OLD_PASSWORD()似乎不是加密/解密到4.1.0版本,而是更早的4.0。

我該怎麼辦?

+0

發現一個問題,這似乎與你的這裏非常相關:http://stackoverflow.com/questions/1892607/mysql-password-hashing-method-old-vs-new/並且總是要求你的用戶重置他們的密碼爲新系統 – Joe

回答

0

「出於兼容性的目的,old_passwords系統變量是 加入,以使在所述散列 方法DBA和應用程序的控制。0原因散列使用 4.1方法的默認old_passwords值(41個字節的散列值),但設置old_passwords = 1個原因散列來使用預4.1方法。在這種情況下,PASSWORD()產生 16字節的值和相當於OLD_PASSWORD()」

我建議每個人不得不創建一個新的密碼,通過電子郵件和隨機密鑰驗證,然後存儲具有良好的方法,新的密碼(使用類似PHPass或至少bcrypt鹽)。

+0

OLD_PASSWORD()工作! – jesmaestro