开发人员通常会随机选择使用MD5和SHA1,但这不是一回事。
在本文中,我们将了解为什么
MD5和SHA1有什么区别?
MD5和SHA1都是用于创建唯一密钥以保护数据文件的哈希算法。在这种情况下,数据是称为摘要或哈希的消息。
从黑客的角度来看,SHA1比MD5更复杂,更难破解。
哈希算法的基本功能包括:
- 消息摘要应具有恒定的长度。
- 无法执行反向功能。
- 加密主要用于加密消息或文件。
在本文中,我们先讨论每个功能的功能,然后再研究以下方面的具体差异,依次讨论MD5和SHA1之间的差异:破解代码,速度,安全性,支持的消息长度和底层代码的复杂性。
消息摘要5(MD5)
定义
消息摘要是一种哈希算法,用于在通过不安全通道传输文件时保护数据。
该功能还可以用于提供可以更改消息的数据完整性。数据包通过加密散列函数传递,以创建消息的压缩映像,称为摘要。
例
例如,鲍勃从爱丽丝那里收到一条消息和摘要对。为了验证所接收数据的透明性和完整性,Bob在给定消息上运行了加密哈希函数以生成新的摘要。如果生成的摘要与Alice早先发送的摘要相符,则可以用作完整性证明。
规则
从生物识别的角度来看,消息和摘要对等效于物理文档和用于解锁它的指纹。
唯一的区别是摘要和消息可以分开发送,这与物理文档和附加的指纹不同。
简单的说:
- 摘要在运输过程中不得篡改。
- 理想情况下,加密功能是不可逆的,因为它是单向功能。
消息摘要5功能接收任意长度的数据,然后生成固定长度的指纹,哈希或摘要,用作完整性检查。 - 作为完整性检查程序,消息摘要使用发送者的私钥加密,以提供所发送消息的真实性。
此生成的摘要称为数字密钥,并且只能由具有发送者公钥的接收者解密。这样,接收者可以验证发送者并验证接收到的消息的完整性。
为了说明此功能的工作原理。您可以想象通过将消息分为512位的块以创建32位十六进制数字的摘要(128位摘要)来使用MD5来检查数据完整性的情况。
安全
但是,由于可靠的使用,MD5不再是首选,因为研究人员已经揭示了如何通过在商用计算机上产生冲突来绕过该系统。
SHA1
定义
SHA1是为确保数据安全而创建的加密功能的一部分。
通常,它们被称为安全哈希算法,它们通过使用哈希函数转换消息来工作。
这些函数是由压缩函数,按位运算和模块化添加组成的算法。
这些算法被设计为单向函数,可将输入数据转换为不同于第一个的固定大小。
安全哈希算法家族是SHA-1,SHA-2和SHA-3,它们都是根据黑客活动开发和增强的。例如,由于广泛暴露的漏洞,第一代安全哈希算法SHA-0现在已过时。
这个怎么运作?
对于本文,我们将重点研究SHA-1(安全哈希算法1),这是美国国家安全局于1995年开发的一种加密计算机安全算法。它早于1993年创建的SHA-0算法。SHA-1是数字签名标准(DSS)和(或)数字签名算法的一部分。
SHA-1从需要加密的输入数据中生成一个160位的哈希值或消息摘要。 生成的数据类似于MD5算法的哈希值。整个过程需要80轮加密操作才能保护数据包。
以下是SHA-1中使用的一些协议:
- 相当不错的隐私
- 传输层安全
- 互联网协议安全
- 安全壳
- 多功能Internet邮件扩展
- 安全链路层
在实践中
SHA-1通常用于对数据完整性有很高要求的环境中或在恶劣的环境中使用。该技术还用于识别校验和错误,数据损坏以及索引函数。
MD5和SHA-1之间的区别
SHA1和MD5都是哈希算法,其中MD5在速度方面是最高效的。
但是,与MD5相比,SHA1是最安全的算法。
两种哈希算法的基础是它们从接收到的消息中生成加密摘要或哈希的能力。
这两个功能的一些基本要素包括:
- 因为数据集是唯一的,所以永远不会有两个类似的哈希或摘要。
- 正在传送的消息的大小不会影响生成的摘要或哈希的长度。
- 一旦执行,这些功能将无法撤消或撤消。
哈希算法主要用于验证文件,而不是对发送的消息进行加密。
MD5 | SHA1 |
MD5是Message Digest的首字母缩写 | 另一方面,SHA1指的是安全哈希算法。 |
与SHA1相比,MD5在速度上仍然更快且更可靠。 | 同样,与MD5相比,SHA1的速度相对较慢。 |
消息摘要的长度为168位 | 在SHA1中,消息散列的最大长度为160位。 |
与SHA1相比,MD5很简单 | SHA1比MD5更复杂 |
攻击者将需要2 ^ 128次操作才能使用MD5算法程序生成第一条消息。 | 在SHA1中,侵略者将需要2 ^ 160次操作,因此要找出它非常具有挑战性。 |
在MD5中,攻击者需要执行2 ^ 64次操作才能找出是否有两个消息共享相同的消息摘要。 | 相反,攻击者在SHA1中需要进行2 ^ 80次操作,才能找出具有相同哈希或摘要的两条消息。 |
MD5提供较差或较弱的安全性 | SHA1提供可容忍或平衡的安全性。 |
MD5和SHA1的消息摘要长度
根据联邦信息处理标准,有四种安全哈希算法,即SHA-1,SHA-256,SHA-384和SHA-512。
这四个函数都是迭代和单向函数,可以压缩长度在2 64至2 128 之间的消息,以生成大约160到512位的消息摘要。
另一方面,MD5从任意长度的输入消息中产生相当于128位的消息摘要或“指纹”。
安全
MD5表示为32位十六进制数字,该数字已被密码破解并且可能发生冲突。
尽管它作为最常用的哈希函数之一而受到欢迎,但是对于依赖于冲突抵抗的系统,它并不是最优选的基于安全性的服务。
另一方面,SHA被认为比MD5更安全。
它需要大量的位作为输入,并生成较短且更安全的固定大小的输出。
当前,有一些SHA1更好的版本已消除了大多数漏洞,例如SHA-256,SHA-384,SHA-512。
后缀表示消息摘要的强度级别。
结论
MD5和SHA1之间的主要区别是,MD5是第一个要开发的算法,它具有多个漏洞,入侵者可以利用这些漏洞为消息摘要或哈希创建冲突。
因此,SHA1是MD5在功能和安全性方面的增强。从那以后,SHA1的第一个版本中的漏洞已通过后续版本SHA 256和SHA 512消除。