密码学中的 SHA 算法17 Mar 2025 | 4 分钟阅读 SHA 简介安全哈希算法,或 SHA。数据和证书使用 SHA 进行哈希处理,SHA 是 MD5 的修改版本。通过使用位运算、模加和压缩函数,哈希算法将输入数据缩减为一种更小的形式,使其难以理解。 你可能会想,哈希可以被破解或解密吗? 哈希和加密之间的主要区别在于哈希是单向的;一旦数据被哈希,除非应用暴力攻击,否则无法解密生成的哈希摘要。请参见下图,了解 SHA 算法的工作原理。 SHA 的设计目的是,即使消息中只有一个字符发生变化,也能提供不同的哈希。 例如,考虑组合主题 Heaven 和 Heaven Is Different。 尽管,大小写字母之间唯一的区别是大小。 ![]() 第一个消息使用 SHA-1 进行哈希处理,以获得哈希摘要“06b73bd57b3b938786daed820cb9fa4561bf0e8e”。 如果第二个类似消息使用 SHA-1 进行哈希处理,则哈希摘要将类似于“66da9f3b8d9d83f34770a14c38276a69433a535b”。 这种现象被称为雪崩效应。 这种现象对于密码学至关重要,因为它意味着即使对输入消息进行最小的更改也会完全改变输出。 因此,攻击者将无法破译哈希摘要最初说了什么,也无法确定消息在传输过程中是否被更改并通知消息的接收者。 SHA 可以帮助识别对原始消息所做的任何修改。 用户可以通过查阅原始哈希摘要来确定是否甚至更改了一个字母,因为哈希摘要将完全不同。 SHA 的一个关键特征是它们是确定性的。 这意味着任何机器或用户,如果他们知道使用的哈希算法,都可以重现哈希摘要。 由于 SHA 的确定性,互联网上的每个 SSL 证书都必须使用 SHA-2 程序进行哈希处理。 不同类型的 SHA在讨论 SHA 形式时,提到了许多 SHA 变体。 SHA 只有两种类型 - SHA-1 和 SHA-2 - 但它们有几个名称,例如 SHA-1、SHA-2、SHA-256、SHA-512、SHA-224 和 SHA-384。 其他更高的数字(例如 SHA-256)只是 SHA-2 变体,其中包括有关 SHA-2 的位长度的信息。 第一个安全哈希算法是 SHA-1,它通过哈希处理生成了一个 160 位的哈希摘要。 你可能会想,SHA-2 能像 SHA-1 一样被破解吗? 是的,这就是答案。 与 SHA-2 相比,SHA-1 更容易进行暴力破解,因为哈希摘要的长度较短,但 SHA-2 也可以做到。 由于 160 位可以生成的可能组合数量有限,SHA-1 的另一个问题是它可以为两个不同的值提供相同的哈希摘要。 所有证书都必须使用 SHA-2,因为它在 SHA-2 下为每个摘要提供唯一值。 SHA-2 可以生成位长度范围从 256 到 512 的哈希摘要,从而为每个摘要提供完全唯一的结果。 当两个值具有相同的哈希摘要时,就会发生冲突。 因为 SHA-1 容易发生冲突,所以攻击者更容易找到两个匹配的摘要并重构原始明文。 自 2016 年以来,所有数字签名和证书都需要 SHA-2,它比 SHA-1 安全得多。 最安全的哈希方法是 SHA-2,因为像暴力攻击这样的常见攻击可能需要数年甚至数十年才能解密哈希摘要。 为什么以及如何使用 SHA?正如已经指出的,安全哈希算法 (SHA) 用于各种目的,并且必须包含在 SSL/TLS 连接的所有数字签名和证书中。 IPSec、SSH 和 S-MIME(安全/多用途互联网邮件扩展)等程序也使用 SHA。 此外,密码使用 SHA 进行哈希处理,以便服务器只需记住哈希,而无需记住实际密码。 因此,如果包含所有哈希的数据库被盗,攻击者不仅无法直接访问所有明文密码,还需要弄清楚如何破解哈希才能使用密码。 SHA 还可以作为文件一致性的标记。 既然我们已经了解了 SHA 的用途,我们必须问自己:为什么会有人使用安全哈希算法? 它们抵抗入侵者的能力是一个常见的理由。 尽管某些技术(例如暴力攻击)可以揭示哈希摘要的明文,但 SHA 使这些策略非常具有挑战性。 一个基本密码可能会阻止许多攻击者,因为由 SHA-2 算法编码的密码可能需要数年甚至数十年才能破解。 每个哈希摘要的独特性是使用 SHA 的另一个理由。 如果使用 SHA-2,哈希摘要可能会因更改消息中的一个单词而完全改变,因为可能几乎没有或没有冲突。 攻击者无法破解安全哈希算法,因为几乎没有或没有冲突,因此难以识别模式。 这些只是 SHA 如此频繁使用的几个解释。 哈希的前景SHA-2 现在是哈希算法的行业标准,尽管 SHA-3 最终可能会取代它。 NIST(也开发了 SHA-1 和 SHA-2)在 2015 年发布了 SHA-3;但是,由于多种原因,它没有被采用为行业标准。 由于当时大多数企业都在从 SHA-1 过渡到 SHA-2,因此在 SHA-2 仍然非常安全的情况下立即转换为 SHA-3 没有任何意义。 此外,SHA-3 被认为比 SHA-2 慢,尽管这并不完全准确。 虽然 SHA-3 在软件方面比 SHA-1 和 SHA-2 慢,但在硬件方面要快得多,并且每年都在变得更快。 下一个主题什么是 AES |
我们请求您订阅我们的新闻通讯以获取最新更新。