0
我有一個系統,用戶可以通過Facebook或常規形式註冊。如果用戶通過Facebook註冊,我的系統會生成一個隨機密碼,以允許用戶在沒有Facebook的情況下登錄,如果他願意的話。如果用戶使用常規形式註冊,他可以輸入他想要的任何密碼。在兩種方式中,密碼都被編碼成MD5哈希碼,但沒有醃製。這是不安全的,我知道,這是我在這裏的原因。密碼MD5編碼無鹽。如何解決它?
我不知道將密碼轉換爲安全密碼的最佳策略...首先,我想保留MD5不安全的密碼,並且當用戶登錄時,我可以匹配沒有鹽的密碼,鹽 - 然後更新數據庫。但它不能解決我的問題,因爲系統仍然會接受不安全的密碼。除此之外,用戶仍然可以使用Facebook登錄,但不允許我更新密碼(因爲他沒有使用它)。
那麼,有沒有人有一個想法,儘量減少影響,而不是隻強迫每個人都更新密碼?
謝謝!
我在這裏回答了一個類似的問題[將舊密碼移動到新哈希算法](http://stackoverflow.com/a/14402451/575765)。 – martinstoeckli 2013-04-27 13:07:46
這是一個不錯的提示,@martinstoeckli,謝謝!我將散列哈希以使其更安全。 – 2013-05-02 19:32:35
不客氣。還有一點,請使用像BCrypt這樣的慢哈希函數來加密你的密碼,像MD5或SHA- *這樣的函數對於哈希密碼來說太快了。 – martinstoeckli 2013-05-02 19:39:46