2011-07-18 78 views
4

我正在更新客戶端的Web系統,他的「帳戶」表有超過20,000個用戶,每個用戶都有一個直接文本的密碼字段,這意味着沒有任何密碼被加密。 (我知道,可怕!)無論如何,我需要知道如何獲取所有這些密碼並輕鬆加密它們,最好以批處理樣式加密,然後將它們導入到數據庫中。我在搜索中找不到多少東西。我確實看到了B-Crypt,但看起來主要用於文件。我很喜歡這個新手,所以任何建議將不勝感激!謝謝。 :)如何批量加密MySQL數據庫中的現有密碼?

+0

+1 *我知道,可怕!* – Nishant

回答

2

這是一種方法來做到這一點。

UPDATE table_Users 
SET password = EncryptionFunctionYouChoose(password); 

編輯 其中「table_Users」是你的密碼保存表和「密碼」是密碼的列名。 END編輯

雖然更好的想法是散列每個密碼與個別鹽值而不是加密。 (我的意見)

1

據我所知MySQL不提供內置的B-CRYPT功能。 Refer。如果你只是想通過使用來解決這個問題的MySQL查詢,你可以這樣做

update users set password = SHA2(password, 256); 

但是,如果你喜歡BCrypt,我想你會在應用層面做到這一點。

關於在數據庫中存儲密碼總是有趣的討論。請參閱this list

相關問題