2010-09-24 31 views
0

PHP函數hash_algos()使我對我的網絡服務器這個名單:我應該使用什麼哈希算法?

[0] => md2 
[1] => md4 
[2] => md5 
[3] => sha1 
[4] => sha256 
[5] => sha384 
[6] => sha512 
[7] => ripemd128 
[8] => ripemd160 
[9] => ripemd256 
[10] => ripemd320 
[11] => whirlpool 
[12] => tiger128,3 
[13] => tiger160,3 
[14] => tiger192,3 
[15] => tiger128,4 
[16] => tiger160,4 
[17] => tiger192,4 
[18] => snefru 
[19] => gost 
[20] => adler32 
[21] => crc32 
[22] => crc32b 
[23] => haval128,3 
[24] => haval160,3 
[25] => haval192,3 
[26] => haval224,3 
[27] => haval256,3 
[28] => haval128,4 
[29] => haval160,4 
[30] => haval192,4 
[31] => haval224,4 
[32] => haval256,4 
[33] => haval128,5 
[34] => haval160,5 
[35] => haval192,5 
[36] => haval224,5 
[37] => haval256,5 

我應該使用的是哪些什麼,爲什麼?特別是,我應該使用哪一個密碼散列?

+0

只是一個快速評論... ...你可以看到這些算法對PHP手冊/論壇的討論。 – 2010-09-24 21:56:25

回答

-4

md5和sha1都適用於密碼散列。不幸的是,他們仍然容易受到彩虹桌專用攻擊者的影響,但密碼長度的最低要求將緩解這個問題。

+0

我當然想知道爲什麼這個投票。我錯過了關鍵的東西嗎?我該如何改進? – JoshD 2010-09-26 04:17:55

+1

它被錯誤地投票(再次)。 MD5和SHA1在密碼散列時失敗,因爲它們**速度太快且易於並行**。查看bcrypt,scrypt,甚至是PKDBF-2的「正確」選擇。 – 2013-02-10 03:30:38

+0

(MD5由於其他原因也失敗:D) – 2013-02-10 03:36:25

1

用於密碼散列的SHA256或SHA384。我聽說一些美國組織的政策不允許軟件組件使用高位長的SHA,但這取決於。

如果您可以使用SHA,請避免使用MDx來散列安全類似密碼的東西。請參閱Is MD5 really that bad?

CRCxx用於校驗和,它們對哈希值不好,因爲它們的值範圍要小得多。

其他人,我不知道他們的用例。

+0

彩虹表與特定的哈希算法無關。看來你只是不明白它是什麼。它是*鹽*是什麼讓彩虹桌無用。 – 2010-09-25 14:23:43

+0

對不起,沒有考慮它 – mhaller 2010-09-25 14:38:46

+0

-1 SHA在密碼散列時失敗,因爲它太快並且易於並行**。查看bcrypt,scrypt,甚至是PKDBF-2的「正確」選擇。 – 2013-02-10 03:29:23