作爲一種普通的方法,我總是用來在數據庫中保存密碼的MD5,而有很多網站會將MD5哈希數據解碼爲其原始數據(使用彩虹數據庫)。修改MD5輸出更安全嗎?
我不知道修改MD5函數的輸出(例如省略MD5輸出的最後一個字符以創建新的散列數據)是否更安全?或者MD5背後的邏輯比每個修改版更安全?
作爲一種普通的方法,我總是用來在數據庫中保存密碼的MD5,而有很多網站會將MD5哈希數據解碼爲其原始數據(使用彩虹數據庫)。修改MD5輸出更安全嗎?
我不知道修改MD5函數的輸出(例如省略MD5輸出的最後一個字符以創建新的散列數據)是否更安全?或者MD5背後的邏輯比每個修改版更安全?
不,這並沒有做太多好,使你的密碼更安全。它增加了一點「默默無聞的安全性」,但是當我們散列密碼時,我們會準備攻擊者知道散列和算法的情況。
一般來說MD5的問題和推導是,他們可以計算得太快。使用通用硬件,你可以計算出8Giga MD5/s,這使得暴力行爲變得容易。今天的密碼破解工具不僅提供普通的MD5哈希值,還可以計算派生值。 md5(strtoupper(md5($pass)))
開箱即用。
爲了安全地存儲密碼,您需要像BCrypt,PBKDF2或SCrypt這樣的慢哈希函數以及一個成本因子。當然,他們應該用每個密碼的獨特鹽來醃製。
謝謝。但我確切的問題是,如果MD5的修改使它更安全或不安全? –
@AliSheikhpour - 當問題出現良好解決方案時,嘗試改進非常不安全的方案是沒有意義的。 – martinstoeckli