php
中可用的散列方法有什么区别md2 md4 md5 sha1 sha224 sha256 sha384 sha512 ripemd128 ripemd160 ripemd256
ripemd320 whirlpool tiger128,3 tiger160,3 tiger192,3 tiger128,4 tiger160,
4 tiger192,4 snefru snefru256 gost adler32 crc32 crc32b salsa10 salsa20
haval128,3 haval160,3 haval192,3 haval224,3 haval256,3 haval128,4 haval160,
4 haval192,4 haval224,4 haval256,4 haval128,5 haval160,5 haval192,
5 haval224,5 haval256
我通常使用md5在我的数据库中存储密码..
我搜索了它,但我没有得到确切的优点和缺点..
答案 0 :(得分:14)
这些都是不同的算法。其中一些是加密哈希值,有些是简单的校验和(例如crc32和adler32),它们计算速度非常快,但绝不能用于加密目的。
MD5和SHA-1曾经是标准的加密哈希,但最近在两者中都发现了弱点。您可能最好使用较新的SHA-256进行加密。其他新的SHA变体使用更少或更多的位,但并没有根本不同。
您可以在维基百科上找到有关这些算法的更多详细信息。
答案 1 :(得分:9)
所使用的算法不同,它也决定了输出的大小(例如md5产生128位输出,sha 160位)。
md5和sha1有被发现的弱点(哈希空间中的冲突),但在大多数情况下,除非你在银行网站上工作,否则md5就足够了。
但是,您必须使用salt(无论使用何种哈希算法),只需使用密码的md5就可以让您容易受到彩虹攻击。编辑:这本身就是一个加密问题而不是PHP本身
答案 2 :(得分:3)