安全散列函数的基本要求,安全散列函数的一般结构

更新:03-20 民间故事 我要投稿 纠错 投诉

SHA(Security Hash Algorithm的缩写)是一种类似于MD5的信息摘要算法,主要应用于数字签名、在线支付、用户登录、密码验证等场景。

网上有很多SHA算法,例如SHA1、SHA224和SHA256。事实上,SHA有3个版本:SHA1、SHA2、SHA3,其中SHA2包括SHA224、SHA256、SHA384、SHA512、SHA3。它还包括SHA3-224./256/384/512,它们共同组成了SHA 系列。

SHA1SHA1可以在明文的基础上生成160位的密文(信息摘要)。例子:

纯文本:abcd

信息摘要:81FE8BFE87576C3ECB22426F8E57847382917ACF20

那么和MD5有什么区别呢?

1. 摘要长度不同。 MD5是128位,SHA1是160位。额外的32 位将明文冲突概率降低了2^32 倍,使其更难解密且更安全。

2、摘要长度的增加意味着性能的下降,SHA的性能略低于MD5。

尽管如此,Marc Stevens、Pierre Karpman 和Thomas Peyrin 还是使用了Amazon 支持的64 GPU 集群(称为Kraken)来自由启动SHA-1 内部压缩功能,以达到目标并提取SHA1 摘要信息,并在短时间内被破译。 10多个小时。

谷歌在2017年宣布将终止对SHA1证书的支持,微软也终止了对IE的SHA1支持。然而,Facebook 和Cloudflare 主张更好地弃用,以便无法升级到SHA-2 的浏览器可以继续工作。

SHA2SHA-2 是一组SHA 算法变体的通用名称,包括以下颠覆:

SHA-256:可以生成256位信息摘要。 SHA-224:SHA-256 的“阉割版本”。可以生成224位的信息摘要。 SHA-512:可以生成512 位长的消息摘要。 SHA-384:SHA-512 的“阉割版”。您可以生成384 位信息摘要。

显然,消息摘要越长,发生冲突的可能性就越小,破译也就越困难。但同时,也提高了性能和空间占用。不同类型的SHA2 提供了很大的灵活性,允许您针对不同的场景使用不同的摘要长度。例如,使用SHA-256 足以进行简单的数据验证,但使用SHA-512 显然是大材小用。另外,如果您非常关心安全性,还可以使用MD5和SHA2的混合算法。如下:

对于“abcd”,它分别生成MD5 摘要和SHA-256 摘要,获取MD5 的前16 位,并将SHA-256 的后20 位连接成36 位摘要。如果你知道拼接规则,你就能破解它。

SHA1 和SHA2 原理SHA-1 算法

核心流程类似,但主要区别在于160位信息摘要分为5段(A、B、C、D、E)。其他与MD5相同。

SHA-2系列算法

将信息摘要分为八段A、B、C、D、E、F、G、H。

SHA-256 的每个摘要的长度为32 位,SHA-512 的每个摘要的长度为64 位。 SHA-224 和SHA-384 根据前两者产生的结果进行调整。

关于SHA3 Keccak 算法由Guido Bertoni、Joan Daemen、Gills Van Assche 和Michael Peeters 共同设计,最终被采用为SHA-3 标准。 Joan Daemen 也是对称加密算法AES 的设计者之一。

根据NIST规定的条件,您可以免费使用与AES完全相同的SHA-3算法。不过,SHA-3的出现并不意味着SHA-2不安全;SHA-2和SHA-3将共存一段时间。

目前,SHA3主要用于加密数字货币,其他大多数项目都使用SHA2作为加密方法。 SHA3的优点是:

它具有与SHA-2 完全不同的结构。结构清晰,易于分析适用于多种设备和嵌入式应用与其他入围算法相比,硬件实现表现出非常高的性能和高安全裕度如果您对SHA3 感兴趣,请查看官方请勿过多赘述本文。

开源工具和MD5一样,JDK提供了丰富的非支持。

结果:

明文:abcdSHA 密文:81FE8BFE87576C3ECB22426F8E57847382917ACF20SHA1 密文:81FE8BFE87576C3ECB22426F8E57847382917ACF20SHA224 密文:A76654D8E3550E9A2D67A 0 EEB6C67B220E5885EDDD3FDE135806E60128SHA256 密文:88D4266FD4E6338D13B845FCF289579D209C897823B9217DA3E161936F03158932SHA384 密文:1165B3406 FF 0B52 A3D24721F785462CA2276C9F454A116C2B2BA20171A7905EA5A026682EB659C4D5F115C363AA3C79B48SHA512 密文:D8022F2060AD6EFD297AB73DCC5355C9B2140 5 4B0D1 776A136A669D26A7D3B14F73AA0D0EBFF19EE333368F0164B6419A96DA49E3E481753E7E96B716BDCCB6F6 其实Java中的SHA、SHA1指的是SHA1加密。本文到此结束。如果您喜欢,请关注我们,共同进步。

【安全散列函数的基本要求,安全散列函数的一般结构】相关文章:

1.动物故事精选:寓教于乐的儿童故事宝库

2.《寓教于乐:精选动物故事助力儿童成长》

3.探索动物旅行的奇幻冒险:专为儿童打造的童话故事

4.《趣味动物刷牙小故事》

5.探索坚韧之旅:小蜗牛的勇敢冒险

6.传统风味烤小猪,美食探索之旅

7.探索奇幻故事:大熊的精彩篇章

8.狮子与猫咪的奇妙邂逅:一场跨界的友谊故事

9.揭秘情感的力量:如何影响我们的生活与决策

10.跨越两岸:探索彼此的独特世界

上一篇:sha1算法流程图,sha_2系列算法的发布时间 下一篇:搬运系统分析设计,搬运系统方案汇总表