MD2 |
1989 |
Ronald Rivest |
128 bits |
不安全 |
- 安全性不高:MD2算法安全性比较低,已经被广泛攻破,因此已不再被推荐使用
- 速度较慢:MD2算法的速度较慢,不适用于对速度要求较高的应用场景
- 可逆性较强:MD2算法具有较强的可逆性,可以通过暴力破解等方式获取原始消息
- 应用场景:MD2算法曾被广泛用于电子邮件安全,但现在已经不再被推荐使用
|
MD4 |
1990 |
Ronald Rivest |
128 bits |
不安全 |
- 安全性较低:MD4算法在设计之初就存在缺陷,容易受到碰撞攻击和预映射攻击,因此安全性较低
- 速度较快:MD4算法的速度较快,适用于对速度要求较高的应用场景
- 可逆性较强:MD4算法具有较强的可逆性,可以通过暴力破解等方式获取原始消息
- 应用场景:MD4算法曾被广泛用于数字签名系统、密码学领域以及操作系统中,但现在已经不再被推荐使用
|
MD5 |
1992 |
Ronald Rivest |
128 bits |
不安全 |
- 安全性较低:MD5算法在设计之初就存在缺陷,容易受到碰撞攻击和预映射攻击,因此安全性较低
- 速度较快:MD5算法的速度较快,适用于对速度要求较高的应用场景
- 可逆性较强:MD5算法具有较强的可逆性,可以通过暴力破解等方式获取原始消息
- 应用场景:MD5算法曾被广泛用于数字签名系统、密码学领域以及操作系统中,但现在已经不再被推荐使用
|
SHA-0 |
1993 |
美国国家安全局 |
160 bits |
不安全 |
在哈希算法领域有一定的开创性意义,但安全性较差,已经被废弃不再被使用
|
SHA-1 |
1995 |
NIST |
160 bits |
不安全 |
-
安全性较高:SHA-1算法的输出长度为160位,比MD5算法的128位长,使得SHA-1具有更高的安全性,能够抵抗一些攻击,例如碰撞攻击
- 可靠性强:SHA-1算法的设计经过了充分的测试和评估,具有很高的可靠性和可用性
- 速度较快:SHA-1算法的运算速度较快,能够在较短时间内处理大量数据
|
SHA-2 |
2001 |
NIST |
224 bits 256 bits 384 bits 512 bits |
安全 |
SHA-2包括了SHA-224、SHA-256、SHA-384、SHA-512、SHA-512/224和SHA-512/256等6种算法
-
安全性更高:相比于SHA-1算法,SHA-2算法采用了更复杂的运算方式和更大的工作单元,具有更高的安全性和更好的抗碰撞能力
-
算法灵活:SHA-2算法支持多种不同的输出长度,可以根据具体的应用场景选择使用不同长度的散列值
- 速度较快:SHA-2算法的运算速度相比于SHA-1算法略有下降,但依然可以在较短时间内处理大量数据
|
SHA-3 |
2015 |
NIST |
224 bits 256 bits 384 bits 512 bits |
安全 |
-
安全性高:SHA-3算法经过多轮的哈希计算,对于哈希冲突的攻击方法有较好的抵抗性,目前尚未被公开攻破
- 可扩展性好:SHA-3可以输出不同长度的哈希值,可以满足不同应用场景的需求
- 高效性:SHA-3的算法结构使得它能够被高效地实现在不同的硬件和软件平台上
-
与SHA-2兼容:虽然SHA-3与之前的SHA算法在结构上有所不同,但是在输出长度上可以与SHA-2兼容,因此可以方便地进行转换
|
BLAKE |
2011 |
Jean-Philippe Aumasson Luca Henzen Willi Meier Raphael C.-W. Phan |
224 bits 256 bits 384 bits 512 bits |
安全 |
- 可配置性:可以根据需要进行参数配置,例如哈希值的位数,以及盐和个人化数据的使用方式
-
高性能:BLAKE的吞吐量比MD5和SHA-1高3倍,比SHA-2高2倍。同时,BLAKE具有高度并行化的特性,因此它在多核和GPU上的性能表现非常优秀
-
高安全性:BLAKE的安全性得到了广泛的评估和验证,并被证明在许多攻击场景下都具有高强度的抵抗能力
|
BLAKE2 |
2013 |
Jean-Philippe Aumasson Samuel Neves Zooko Wilcox-O'Hearn Christian Winnerlein
|
128 bits 160 bits 224 bits 256 bits 384 bits 512 bits |
安全 |
- 高速性:BLAKE2比SHA-3和SHA-2等传统哈希函数具有更高的速度,可以用于高速数据处理和网络通信
- 高安全性:BLAKE2的安全性得到了广泛的评估和验证,其哈希值具有高度抗碰撞和强度
- 可配置性:BLAKE2支持多种输入输出长度和哈希参数配置,可以根据具体应用场景进行优化和适配
- 高效性:BLAKE2算法支持高度并行化,可以在多核和GPU上获得高效的计算性能
|
RIPEMD-128 |
1996 |
Hans Dobbertin
Antoon Bosselaers
Bart Preneel
|
128 bits |
不安全 |
速度快,安全性较低,已被攻破 |
RIPEMD-160 |
1996 |
Hans Dobbertin
Antoon Bosselaers
Bart Preneel
|
160 bits |
不安全 |
比RIPEMD-128安全,但由于其输出位数较少,已经不足以提供足够的抵抗力,容易受到暴力破解和碰撞攻击等攻击方式的影响。
|
RIPEMD-256 |
2004 |
Hans Dobbertin Antoon Bosselaers Bart Preneel |
256 bits |
安全 |
RIPEMD-256 目前仍然被认为是安全的,尚未出现有效的攻击方法。然而,由于其输出长度较短,
相对于 SHA-3 等新一代哈希算法而言,RIPEMD-256 的安全性和抗碰撞能力可能会有所不足。
|
RIPEMD-320 |
2006 |
Hans Dobbertin Antoon Bosselaers Bart Preneel |
320 bits |
安全 |
在2010年,有研究人员发现了一种针对其的前像攻击,可以在2^251次哈希计算内找到一对不同的消息,其哈希值相同。
虽然这个攻击比较理论化,但它揭示了RIPEMD-320的一些漏洞,使得它的安全性受到了质疑。
因此,虽然RIPEMD-320被认为是一种相对强的哈希算法,但建议不再将其用于新的加密应用中。
同时,由于SHA-3已经成为了新的NIST标准,具有更高的安全性和更好的性能,因此在需要高安全性的应用场景下,推荐使用SHA-3算法。
|
Whirlpool |
2000 |
Vincent Rijmen Paulo S. L. M. Barreto |
512 bits |
安全 |
-
输入长度不受限制:Whirlpool算法适用于任何长度的输入,其分组长度为512位,使得它比较适合处理大型文件
-
高安全性:Whirlpool算法使用了比MD5和SHA-1更强的加密机制和更长的哈希值,因此其安全性相对较高。该算法的哈希值长度为512位,比SHA-2系列算法中的256位还要长
- 较慢的速度:Whirlpool算法相对于其他哈希函数的运行速度较慢,但它对于安全性的关注程度更高
-
具有可扩展性:Whirlpool算法支持可扩展输出,这意味着它可以产生任何长度的哈希值,从而使其更具灵活性
|
SM3 |
2010 |
中国国家密码管理局 |
256 bits |
安全 |
SM3算法的输入可以是任意长度的消息,输出为256位摘要值 |
Tiger |
1995 |
Ross Anderson Eli Biham |
192 bits |
不安全 |
存在某些安全性弱点,已经被一些更安全的哈希函数所取代,例如SHA-3和BLAKE2 |
GOST |
1994 |
俄罗斯政府 |
256 bits |
安全 |
在国际范围内的应用相对较少,其安全性仍需要进一步研究和验证 |