2010-07-27 29 views
0

我繼承了一個擁有大量用戶羣的網站。我的客戶正在更新他們的記錄,我需要將大約900個用戶的預定密碼導入到一個mysql表中。我輸入的行似乎加密了密碼,如果我通過php前端輸入密碼的話。我可以使用phpMyAdmin將所有密碼導入到表格中,但是當我測試它們時,它們不起作用,因爲它們處於未加密格式。在將密碼導入我的表之前,有沒有辦法對密碼進行加密?初始用戶密碼導入到MYSQL

回答

1

這不是100%清楚你的問題,但我會假設你的密碼存儲在MySQL加密的列中。

爲了在導入它們之前「加密密碼」,您必須弄清楚正在使用哪種加密算法。這將涉及查看數據庫模式和插入其中的代碼,查找執行加密的位置以及識別算法。

完成此操作後,請事先使用相同的算法對密碼進行加密。

0

您應該編寫腳本以使用應用程序所需的相同加密方法導入密碼。

您應該閱讀PHP前端的源代碼以找出用於加密(或更可能是哈希)密碼的方法。在不學習代碼的情況下嘗試猜測他們的方法是浪費時間。

根據哈希方法的不同,您可能可以將剛剛導入的純文本密碼轉換爲散列版本,只需使用SQL更新即可。舉例來說,如果它的SHA1,那麼你可以這樣做:

UPDATE accounts SET password = SHA(password) 

這將覆蓋其哈希密碼。記住哈希是而不是是可逆的,所以在嘗試這個之前做一個數據庫備份!

我也推薦讀無畏領袖You're Probably Storing Passwords Incorrectly

+0

比爾,感謝網站使用的散列方向是md5。我運行密碼列上的SQL更新,它工作得很好。謝謝你的幫助。 – pixelJockey 2010-07-27 16:29:02

+0

很高興爲您提供幫助。請記住放棄並選擇「接受答案」給幫助你的人。這是一件小事,但這就是Stack Overflow的遊戲玩法。 :-) – 2010-07-27 19:03:48

0

解決:

UPDATE SET用戶USER_PASSWORD = MD5(USER_PASSWORD)所有用於輸入

感謝。