什么是MD5? (MD5消息摘要算法)

MD5的定义及其历史和漏洞

MD5(技术上称为MD5消息摘要算法 )是一种密码散列函数,其主要目的是验证文件是否未改变。

MD5不是通过比较原始数据来确认两组数据是相同的,而是通过在两组数据上生成校验和 ,然后比较校验和来验证它们是否相同。

MD5有一些缺陷,所以它对高级加密应用程序没有用处,但将它用于标准文件验证是完全可以接受的。

使用MD5检查器或MD5发生器

Microsoft File Checksum完整性验证程序 (FCIV)是一款免费的计算器,可以从实际文件生成MD5校验和,而不仅仅是文本。 请参阅如何 使用FCIV 验证Windows中的文件完整性以了解如何使用此命令行程序。

奇迹沙拉MD5哈希生成器工具是一种简单的方法来获得一串字母,数字和符号的MD5哈希值。 还有很多其他的存在,比如MD5哈希生成器,PasswordsGenerator和OnlineMD5。

当使用相同的散列算法时,会产生相同的结果。 这意味着您可以使用一台MD5计算器来获取某些特定文本的MD5校验和,然后使用完全不同的MD5计算器来获得完全相同的结果。 这可以通过基于MD5散列函数生成校验和的每个工具来重复。

历史& MD5的漏洞

MD5是由Ronald Rivest发明的,但这只是他三种算法中的一种。

他开发的第一个散列函数是1989年的MD2,它是为8位计算机构建的。 虽然MD2仍在使用中,但它并不适用于需要高度安全性的应用程序,因为它显示出容易受到各种攻击。

MD2在1990年被MD4所取代.MD4是为32位机器制造的,比MD2要快得多,但也显示出其弱点,现在被互联网工程任务组视为已经过时。

MD5于1992年发布,也是为32位机器而构建的。 MD5并不像MD4那么快,但它被认为比以前的MDx实现更安全。

尽管MD5比MD2和MD4更安全,但其他加密散列函数(如SHA-1 )已被建议作为替代方案,因为MD5也被证明存在安全漏洞。

卡耐基梅隆大学软件工程研究所对MD5说: “软件开发人员,认证机构,网站所有者和用户应该避免使用任何能力的MD5算法。正如以前的研究表明的那样,它应该被认为是加密破坏的,不适合进一步使用“。

2008年,国家标准与技术研究院建议将MD6作为SHA-3的替代品。 您可以在此阅读有关此提案的更多信息

有关MD5哈希的更多信息

MD5散列长度为128位,通常以32位十六进制值等效显示。 无论文件或文本的大小如何都是如此。

其中一个例子是十六进制值120EA8A25E5D487BF68B5F7096440019 ,其中明文转换为“This is a test”。 添加更多的文字阅读“这是一个测试,以显示文本的长度如何不重要。” 转换为完全不同的值,但具有相同数量的字符: 6c16fcac44da359e1c3d81f19181735b

实际上,即使是一个零字符的字符串也有一个十六进制值d41d8cd98f00b204e9800998ecf8427e ,并且即使使用一个句点也会使值为5058f1af8388633f609cadb75a75dc9d

MD5校验和被建立为不可逆的,这意味着你不能查看校验和并识别原始输入的数据。 据说,有大量的MD5“解密器”被宣称可以解密MD5值,但真正发生的是他们创建了很多值的校验和,然后让您在他们的数据库中查找校验和看看他们是否有能够显示原始数据的匹配项。

MD5Decrypt和MD5 Decrypter是两个免费的在线工具,可以做到这一点,但它们只适用于常用的单词和短语。

查看什么是校验和? 有关MD5校验和的更多示例以及从文件生成MD5哈希值的一些免费方法。