2011-02-08 52 views

回答

20

對SHA-1目前已知的弱點沒有在它的安全性產生任何影響。對於這個問題,MD5也可以(但不是MD4)。但是,SHA-1不利於公共關係:如果在2011年使用SHA-1,那麼您必須準備好自己來證明這一選擇是正確的。另一方面,SHA-256是一個很好的「默認功能」,沒有人會質疑它。

PBKDF2沒有性能問題(PBKDF2包含一個「迭代計數」,意思是使其完全像需要的一樣慢),所以在這裏沒有什麼理由比SHA-256更喜歡SHA-1。但是,如果您有一個現有的,使用PBKDF2-SHA-1的已部署系統,則不需要立即「修復」它。

+1

在[Stack Crypto](http://crypto.stackexchange.com/questions/15218/is-pbkdf2-hmac-sha1-really-broken)中也有一個很好的解釋。簡而言之,密碼衝突並不是一件壞事,它只是意味着惡意用戶(或有效用戶)可以使用一些不同的密碼登錄,而不能回到原來的「真實」密碼。 – 2017-03-09 16:12:12

0

對SHA1的攻擊導致了大量的公共騷動,因此可以構造一條消息,它與另一條消息具有相同的哈希值。對於每個散列函數,這當然總是可能的(原則上),因爲散列函數具有比輸入位少的輸出位。但是,通常不可能偶然發生,故意做它應該在計算上不可行。

從「確保消息完整性」的角度來看,這可以被看作是一場災難。

另一方面,爲了生成隨機數的目的,這絕對沒有方向。

0

當然。如果您希望生成更多密鑰材料,則SHA-256或更大,可能會更有效。 但PBKDF2-HMAC-SHA1很好。同樣,標準HMAC的使用還沒有受到影響,但是同樣的情況下,更長的哈希原則上更安全。在PBKDF2使用時,HMAC,更不用說使用時