我正在使用MD5(無鹽)散列用戶密碼的系統上工作。我想使用SHA-512和鹽更安全地存儲密碼。使用SHA-512和salt來散列MD5散列密碼?
雖然這很容易實現未來的密碼,但我還想改造現有的MD5哈希密碼,最好不要強迫所有用戶更改其密碼。我的想法是隻使用SHA-512和適當的鹽來散列現有的MD5散列。然後,我可以在數據庫中設置一些標誌,指明哪些密碼是從純文本進行散列的,哪些是從MD5哈希散列的。或者我可以在驗證用戶時嘗試這兩種方法。甚至可以用MD5和SHA-512/salt對新密碼進行哈希處理,這樣就可以將它們視爲舊密碼。
以編程方式,我不認爲這會是一個問題,但我不太瞭解加密/散列,以便知道我是否以任何方式危害散列的質量,方法是應用SHA-512/salt散列到已經被MD5散列的密碼。我的第一個直覺是,如果有的話,它會更強大,一個非常輕鬆的關鍵。我的第二個直覺是我並不真正知道自己在說什麼,所以我最好得到建議。有什麼想法嗎?
與MD5相比,SHA-512只能提供很小的改進(例如:'MD5(salt + password)'實際上等同於'SHA512(salt + password)')。 MD5和SHA系列之類的通用散列函數不是用來存儲密碼的。使用bcrypt。 – NullUserException 2012-10-30 21:55:53
非常真實。我其實打算做關鍵的延伸,但沒有在我的問題中說清楚。我最終使用PBKDF2而不是天真地實現我自己的密鑰伸展算法。 – 2012-10-31 13:00:14