我面臨着永無止境的問題如何在DB中存儲密碼?。據我最近閱讀的那裏提供了一些以前認爲的安全算法,它們被標記爲不安全。所以我正在努力尋找描述那些不再安全的最新資源。2013年散列認證數據
我在考慮將兩個或三個算法結合起來,但我記得當天它被認爲是不安全的,即將散列暴露給攻擊。我在想的組合是類似的東西:
data_h1 = sha256(sha1(data_salt).sha1([username|email]).sha1(data_peper))
data_h2 = sha256(sha1(data_salt).sha1(user_entered_password).sha1(data_pepper))
hmac(
sha512,
data,
sha512(general_salt.data_h1.data_h2.general_pepper)
);
凡data_salt和data_pepper是常數,到應用程序中硬編碼,但比general_salt和general_pepper不同它們也硬編碼常量。 [username | email]是用戶在註冊和登錄時提供的值,以及* user_entered_password *(doh!)。
- 這會以某種方式危及安全嗎? (如果沒有下一步)
- 由於在發電過程中將會發生的散熱躁狂症會有什麼主要瓶頸嗎? (轉到下一個)
- 上面顯示的方法的任何建議?
我的問題也適用於PHP,但將是很好的,看看有什麼會你們推薦什麼將您的意見是在一般情況下,b`cuz我認爲這是很常見的任務,許多人仍然使用只有MD5或SHA1(或者更好,以純文本形式存儲)。
可能重複的[安全哈希和鹽的PHP密碼](http://stackoverflow.com/questions/401656/secure-hash-and-salt-for-php-passwords) – PeeHaa
Pleeeease不使用那些怪異的,完全過時並且在幾秒鐘內可以自行建造「解決方案」。改用新的PHP 5.5密碼散列函數。順便說一句,我刪除了我的正確答案,因爲人們正在降低它(即使它是完全正確的)。 – Sliq
關於5.5的建議是不夠的,因爲它沒有得到廣泛的支持(我幾乎沒有想到提供它的提供商,不包括專用服務器和雲)。可能這就是@Panique DV的原因。由於這種方法非常糟糕(我可以說,但只是試圖說明[很多人不理解的想法])並引用自己的話:「據我最近看到的,有一些以前考慮過的安全的算法,被標記爲不安全。所以我正在努力尋找描述那些不再安全的資源的最新資源。' –