MD5哈希生成器

添加到网站 元信息

其他工具

MD5哈希生成器

MD5哈希生成器

MD5 是一种 128 位哈希算法,由科学家 Ronald L. Rivest 在 1990 年代初期创建。 缩写 MD5 代表消息摘要版本 5。

MD5 加密基于散列法,它涉及形成“指纹”或“总和”以进一步验证其真实性。 使用此方法,您可以验证信息的完整性以及密码哈希的存储。

MD5历史

消息摘要算法 (MD5) 的历史始于 1991 年,当时麻省理工学院教授 Ronald L. Rivest 报告了一种新算法的创建,该算法取代了过时的 MD4。 至于 MD4,正如德国密码学家 Hans Dobbertin 后来所写的那样,确实发现了很多缺点。

Rivest 在 RFC 1321 中描述了新的 MD5 算法。

该算法的工作由研究人员 Bert den Boer 和 Anton Bosselars 继续进行,他们在 1993 年证明了 MD5 中伪冲突的可能性,此时不同的初始化向量可以与相同的消息摘要匹配。

此外,在 1996 年,Hans Dobbertin 声称在 MD5 中发现了碰撞。 那时,更多首选的散列算法为人所知,例如 RIPEMD-160 加密散列函数 - 由 Hans Dobbertin、Anton Bosselars 和 Bart Prenel 开发,Whirlpool - 由 Vincent Raymen 和 Paulo Barreto 开发,以及 SHA-1 加密散列算法。

由于 MD5 中的哈希大小(128 位)相对较小,因此有人谈论过生日攻击的可能性。 由 Jean-Luc Cook 于 2004 年发起的 MD5CRK 项目旨在研究使用生日攻击的算法的漏洞。 但是,五个月后的 2004 年 8 月 17 日,由于赖雪佳领导的一组中国密码学家发现了算法中的漏洞,该项目被缩减。

2005 年 3 月,数学家和密码学家 Benne de Weger、Arjen Lenstra 和 Wang Xiaoyun 创建了两个具有相同散列和不同公钥的 X.509 文档。

一年后,即 2006 年 3 月,捷克密码学家 Vlastimil Klima 发布了一种算法,您可以在一分钟内在一台简单的计算机上确定碰撞。 该算法被称为“隧道”方法。

作为对工作成果的分析,2008 年,美国国土安全部国家网络安全管理局 (US-CERT) 的部门建议参与开发的每个人软件、网站以及网络用户,停止使用 MD5 算法,无论其应用目的如何。 之所以提出这样的建议,是因为他在研究过程中表现出的不可靠性。

2010 年 12 月,中国密码学家谢涛和冯登国发现了 512 位(一个块)的消息冲突。 以前,仅在长度为两个块或更多的消息中发现冲突。 后来,马克史蒂文斯通过发布具有相同 MD5 哈希值的区块取得了类似的结果。 他还开发了一种算法来获得这种类型的碰撞。

最后一个终结 MD5 算法发展历史的文件是征求意见稿——RFC 6151(RFC 是由互联网工程委员会 (IETF) 制定的官方文件,它描述了特定的规范技术),它实际上将 MD5 识别为不安全的哈希算法。 该文档建议放弃它,选择 SHA-2 系列加密算法作为替代方案。

所讨论的 MD5 算法被认为是最早用于检查文件完整性和在 Web 应用程序数据库中存储密码的算法标准之一。

但事实上,相对简单的功能、较短的输出长度和执行的操作的简单性,是该算法的优点,也决定了它的缺点——MD5是指容易被黑客攻击且具有低度的算法防止生日攻击。

什么是MD5?

什么是MD5?

MD5 散列算法可用于与创建电子数字签名、安全密码、加密在线密钥相关的各个领域。 它可以在 PC 上检查信息的完整性。

最初,MD5被认为是一种比较强的加密算法,但由于在研究中发现了不足,目前建议更换为另一种更安全的哈希算法。

使用示例

MD5算法的主要优点是适用范围广。

该算法允许您检查下载信息的真实性和完整性

例如,除了用于安装软件的软件包外,还有用于验证的校验和值。

还实践了使用MD5算法对密码进行哈希处理

例如,Unix 操作系统积极使用此算法作为散列工具。 需要注意的是,在一些Linux系统中,MD5方法也被积极地用于存储密码。

已知以下存储密码的方式:

  • 没有散列的标准存储。这种方法的缺点是当数据库被黑客攻击时信息泄露的风险很高。
  • 仅存储密码哈希值。使用预先准备的哈希表可以轻松找到此类数据。 为了填写这些表格,使用了低复杂度的通用密码。
  • 在名为“salt”的密码中添加几个字符。之后,对结果进行哈希处理。 通过此类操作获得的密码必须以明文形式存储。 搜索以这种方式创建的密码时,表格将无济于事。

MD5哈希算法可用于验证从网络下载的文件

当使用可以更改文件属性并启用哈希编码算法的专用实用程序时,这成为可能。

MD5用于创建web应用程序

在开发和配置身份验证系统、脚本或面板的过程中,您可以为单独的行生成哈希码。

MD5算法的可靠性

长期以来,我们称为 MD5 算法的哈希技术一直被认为相当可靠。 与此同时,没有人谈论它的理想性。 无法保证该算法不会受到攻击并提供 100% 的信息不可侵犯性。

作为许多科学家工作的结果,该技术的某些缺点被确定。 主要是加密过程中碰撞检测导致的漏洞。

冲突是当输入不同的输入数据时获得相同输出结果的概率。 这个概率越高,所用算法的保护级别越低。

研究人员进行了密码分析并确定了几种破解 MD5 哈希的方法:

  • 暴力攻击可视为一种通用的黑客攻击方法。 但是,它也有缺点——方法很长。 为了抵消它,使用了增加键数的技术。 该方法常用于评估密码加密强度的高低。
  • RainbowCrack 是一个特殊的程序,它允许您创建一个散列库,在此基础上几乎可以即时破解字母和数字的密码。
  • 要使用字典选择密码,需要使用字典数据库和现成的程序。
  • 在使用碰撞检测方法时,它们对具有相同开头的不同消息取相似的函数值。 这种方法在 20 世纪末被积极使用。

获得相同哈希码的公式为:MD5(4L1) = MD5(4L2)。

2004 年,中国科学家发现了系统中的一个漏洞,使得在短时间内检测到碰撞成为可能。

2006 年,人们发现了一种方法,可以让您使用所谓的“隧道”检测普通计算机上的有害文件。

尽管存在主要与 MD5 漏洞相关的某些问题,但由于该算法在独立开发 Web 应用程序以及其他必要情况下的积极使用,因此仍然需要该算法。