首页 > 编程语言 >什么是SHA系列算法,SHA-1和MD5算法有什么区别

什么是SHA系列算法,SHA-1和MD5算法有什么区别

时间:2022-12-08 18:01:03浏览次数:65  
标签:摘要 SHA 算法 版本 256 MD5


有些朋友在研究微信支付接口的时候,发现它们不仅支持MD5摘要的验签,还支持SHA-256摘要。那么这个SHA是什么呢?别着急,本文将和大家说一说什么是SHA系列算法,SHA这么多版本之间有什么不同,以及SHA-1和MD5算法之间的区别。

什么是SHA系列算法,SHA-1和MD5算法有什么区别_数据库

一、什么是SHA系列算法

SHA (Security Hash Algorithm) 是美国的 NIST 和 NSA 设计的一种标准的 Hash 算法,SHA 用于数字签名的标准算法的 DSS 中,也是安全性很高的一种 Hash 算法。

二、SHA这么多版本之间有什么不同

一些人表示疑问:网上以SHA命名的算法五花八门,什么SHA-1,SHA2,SHA-256等等,为什么会有这么多名字呢?

这是因为SHA算法分为很多版本。最大的版本分类是SHA-1和SHA-2,SHA-2又包含了很多子版本。SHA-2的子版本包括SHA-224SHA-256,SHA-384,SHA-512。这些版本共同构成了SHA的大家族。

1、SHA-1算法

SHA-1 算法的输入消息长度小于 264bit,最终输出的结果值是 160 Bits,SHA-1 与 MD4 相比较而言,主要增加了扩展变换,将前一轮的输出也加到了下一轮,这样增加了雪崩效应,而且由于其 160 Bits 的输出,对穷举gong击更具有抵抗性。

大致实现过程:将消息摘要转换成位字符串,对转换后的位字符串进行补位操作,附加长度值并且初始化缓存,然后计算消息摘要。

2、SHA-256 算法

SHA-256 算法输入报文的最大长度不超过 264 Bits,输入按 512 Bits 分组进行处理,产生的输出是一个 256 Bits 的报文摘要。

3、SHA-2的其他衍生算法

包括SHA-224、SHA-256、SHA-384、SHA-512,这些版本共同构成了SHA大家庭。

SHA-224:SHA-256的“阉割版”,可以生成长度224bit的信息摘要。

SHA-512:可以生成长度512bit的信息摘要。

SHA-384:SHA-512的“阉割版”,可以生成长度384bit的信息摘要。

三、SHA-1和MD5算法之间的区别

1、摘要长度不同,安全性不同

SHA-1摘要长度160bit,MD5的摘要的长度128bit。多出32bit意味不同明文的碰撞几率降低了2^32 = 324294967296倍,SHA-1 的安全性比MD5高。

什么是SHA系列算法,SHA-1和MD5算法有什么区别_多版本_02

如果单纯使用MD5可能比较容易遭到撞库gong击。通过预先计算知道MD5的对应关系,存在数据库中,然后使用的时候反查。例如我们知道'abcd’的MD5值是

e2fc714c4727ee9395f324cd2e7f331f

那么就用一个数据库存起来,只要当我们看到

e2fc714c4727ee9395f324cd2e7f331f

就能够知道这个是口令‘abcd’是用MD5处理之后的值,原来的口令就是'abcd'。

什么是SHA系列算法,SHA-1和MD5算法有什么区别_数据库_03

在网络安全实训中,也经常需要使用到这种相应的数据库进行反查。现在网上有很多在线md5解密的网站(免费MD5加密解密:https://md5.cn/),可以通过密文查询到相应的口令,成功率还是挺高的,大家可以去试试。

2、性能略有差别

SHA-1生成摘要的性能比MD5略低。

四、SHA-2为什么要有这么多版本?

有人问,为什么SHA-2要有这么多的版本呢?只使用最长的一种不就行了吗?

这是为了适应不同的应用场景,从而对安全、性能、空间等因素做出权衡。比如说我的需求仅仅是验证数据完整性,使用SHA-512显然是浪费了。另外,如果想要追求安全性,也可以考虑把多种摘要算法结合使用。

以上介绍了什么是SHA系列算法,以及SHA-1和MD5算法之间的区别。在计算机安全领域中,这两种算法得到广泛应用,大家可以根据信息安全的要求,灵活选择这两种算法从而达到实际目的。

标签:摘要,SHA,算法,版本,256,MD5
From: https://blog.51cto.com/u_15718024/5922999

相关文章