我们已经知道了什么是哈希表和哈希算法,这一篇文章就准备聊聊哈希算法的 种类 以及 特点,废话不多说,开搞!
哈希算法的种类
目前主流的哈希算法有两个大类
- **MD(Message Digest)**:消息摘要算法
- **SHA(Secure Hash Algorithm)**:安全散列算法
下面分别详细聊聊它俩
消息摘要算法
MD算法家族包括:MD2,MD4,MD5,它们生成的消息摘要都是 128位 的,通常用16进制表示为32个字符
MD4(RFC 1320)是 MIT 的 Ronald L. Rivest 在 1990 年设计的
MD5(RFC 1321)是Rivest于 1991 年对MD4的改进版本。它对输入仍以 512位 分组,其输出是 4个32位字 的级联,与 MD4 相同。MD5比MD4来得复杂,并且速度较之要慢一点,但更安全,在抗分析和抗差分方面表现更好
从安全性上说:MD5 > MD4 > MD2
安全散列算法
安全散列算法是一个 密码散列函数家族,是FIPS所认证的安全散列算法,它是一个能计算出数字消息所对应到的,长度固定(又称消息摘要)的算法
SHA家族的五个算法,分别是 SHA-1、SHA-224、SHA-256、SHA-384、SHA-512,后面四个有时统称为 SHA-2
SHA-1可将一个最大 2的64次方位 的讯息,转换成一串 160位 的讯息摘要,而后四个算法生成的摘要长度为它们名字 后面的数字,如SHA-256算法,它生成的摘要长度为256位,因此它的抗穷举(brute-force)性比MD更好
哈希算法的特点
列举如下
- 无论输入的消息有多长,计算出来的消息摘要的长度总是固定的
- 消息摘要是 伪随机的
- 通常情况下,不同的输入必会产生不同的输出,相同的输入必会产生相同的输出
- 只能进行正向的信息摘要,而无法从摘要中恢复出任何原始的信息,甚至根本就找不到任何与原信息相关的信息
结语
结尾给一个小彩蛋,不要错过哟
2004年8月17日,在美国加州圣芭芭拉召开的国际密码大会上,山东大学王小云教授在国际会议上首次宣布了她及她的研究小组的研究成果——对MD5、HAVAL-128、MD4和RIPEMD等四个著名密码算法的破译结果,其后于2005年2月宣布破解SHA-1密码