密码学 - MD5 vs SHA1



SHA1 和 MD5 是两种哈希算法。虽然 MD5 快速易用,但安全性不高。SHA1 提供更高的安全性,比 MD5 更先进。

要了解更多关于这两种哈希算法及其差异的信息,请继续阅读本章。

什么是 MD5?

MD 代表消息摘要。MD5 是一种哈希算法,它创建 128 位哈希值。

  • 虽然 MD5 的创建目的是用作密码哈希函数,但已发现它存在一些缺陷。然而,它被广泛使用。
  • MD5 可以用作校验和来验证数据完整性,但仅限于意外损坏。它仍然可以用于非密码学任务,例如查找分区数据库中特定密钥的分区。
  • MD5 摘要经常用于软件行业,以确保传输的文件完好无损。例如,项目服务器经常为文件提供预先计算的 MD5(也称为“md5sum”)校验和,用户可以将其与下载文件的校验和进行比较。
  • 大多数基于 Unix 的操作系统的发行版包中都提供了 MD5 校验和程序;Windows 用户可以使用内置的 PowerShell 函数“Get-FileHash”,安装 Microsoft 实用程序或使用第三方软件。这种校验和也用于 Android ROM。
  • 如果攻击者试图破解用 MD5 加密的邮件,则他们必须执行 2128 次操作。如果攻击者需要查找两条具有相同消息摘要的邮件,则他们必须执行 264 次操作。

什么是 SHA1?

安全哈希算法 1 的简称为 SHA1。这是一种密码哈希函数,它接受输入并输出消息摘要,这是一个 160 位(20 字节)的哈希值,通常显示为 40 位十六进制整数。

  • SHA1 是美国国家安全局开发的美国联邦信息处理标准。
  • SHA1 用于各种安全程序和协议,如 TLS、SSL、PGP、SSH、S/MIME 和 IPSec。SHA1 和 MD5 都源于 MD4。
  • 对手需要 2160 次操作才能破译原始消息。如果他们必须搜索两条具有相同消息摘要的消息,则攻击者必须执行 280 次操作。因此,它比 MD5 安全得多。

自 2005 年以来,SHA1 一直被认为容易受到资金雄厚的对手攻击。截至 2010 年,许多组织呼吁替换它。

MD5 和 SHA1 的区别

下表显示了 MD5 和 SHA1 的主要区别:

序号 关键 MD5 SHA1
01 定义 MD5 代表消息摘要。 SHA 代表安全哈希算法。
02 支持的长度 MD5 中的消息摘要长度最多可达 128 位。 SHA1 的消息摘要长度最多可达 160 位。
03 速度 MD5 比 SHA 快。 SHA 比 MD5 慢。
04 复杂度 MD5 比 SHA 简单。 与 MD5 相比,SHA 是一种相当复杂的算法。
05 安全性 MD5 的安全性较差。 SHA 提供均衡的安全性。
06 用途 它用于旧系统 它广泛用于各种应用程序
07 破解代码 如果需要查找两条具有相同消息摘要的消息,则必须执行 264 次操作。 在这种情况下,攻击者必须执行 280 次操作。
08 安全漏洞 容易受到碰撞攻击 SHA1 虽然比 MD5 安全
09 密码学应用 文件完整性验证、密码哈希、数字签名 数字证书、安全哈希、TLS/SSL 证书、数字签名

总结

MD5 生成 128 位的消息摘要,而 SHA1 生成 160 位的哈希值。因此,SHA1 是一种更先进的算法,提供比 MD5 更高的安全性。

广告