常见加密算法总结 @ Lin | 2025-09-30T14:21:26+08:00 | 4 分钟阅读 | 更新于 2025-09-30T14:21:26+08:00

洞悉加密世界的三大基石:哈希、对称与非对称加密

在数字世界中,数据安全是重中之重。无论是保护用户密码,还是确保传输中的数据不被窃取,我们都离不开加密技术。今天,我们将深入探讨支撑现代数据安全的三大核心加密算法:哈希算法、对称加密和非对称加密,并厘清它们各自的角色与最佳实践。

一、 哈希算法:数据的“唯一指纹”

你可以把哈希算法理解为一个高效且不可逆的“数据指纹生成器”。它能为任意大小的数据生成一个固定长度的、唯一的哈希值(或称摘要)。

核心特性:

  • 不可逆性:无法从哈希值反推出原始数据。这使其绝对不适合用于“解密”,但非常适合用于“验证”。
  • 雪崩效应:原始数据哪怕只改动一个标点,生成的哈希值也会变得面目全非。
  • 唯一性:理想情况下,不同的数据不会产生相同的哈希值(即避免“碰撞”)。

常见算法与应用场景:

  • 安全存储密码:这是哈希算法最经典的应用。系统存储的并非用户明文密码,而是其哈希值。当用户登录时,系统对比输入密码的哈希值与存储的哈希值是否一致。为了抵御“彩虹表”攻击,必须进行**加盐(Salt)**操作,即在密码前后加入随机字符串再哈希。 推荐算法Bcrypt。它是专为密码加密设计的“慢哈希”算法,通过增加计算成本,有效抵御暴力破解。
  • 校验数据完整性:下载软件或文件时,官网通常会提供文件的哈希值(如 SHA-256)。下载后,你可以计算本地文件的哈希值并与官网对比,一致则说明文件未被篡改。
  • 已不安全的算法MD5SHA-1已被证实存在碰撞漏洞,不应再用于安全目的。

简单来说,哈希算法回答的问题是:“这串数据是否正确/完整?”

二、 对称加密:用同一把钥匙锁门和开门

对称加密就像用一个密码箱加密数据。加密和解密使用同一把密钥

核心特性:

  • 高效快速:算法相对简单,加解密速度非常快,适合处理大量数据。
  • 密钥分发难题:最大的挑战是如何安全地将密钥传递给通信双方。如果密钥在传输中被截获,加密即告失效。

常见算法与应用场景:

  • AES(高级加密标准):当前最主流、最安全的对称加密算法,是加密领域的黄金标准。它支持128、192、256位密钥,密钥越长越安全。通常用于: 加密数据库中的敏感字段:如身份证号、银行卡号等。 HTTPS协议中的数据传输:在完成初始握手后,后续大量的数据传输都使用AES加密。
  • DES 和 3DES:DES因密钥过短已被淘汰。3DES是DES的过渡方案,安全性有所提高,但速度远慢于AES,现已不推荐使用。

简单来说,对称加密回答的问题是:“如何快速地对大量数据进行加密保护?”

三、 非对称加密:公钥锁门,私钥开门

非对称加密完美解决了对称加密的密钥分发难题。它使用一对数学上关联的密钥:**公钥(Public Key)**和 私钥(Private Key)。公钥可以公开给任何人,私钥则必须严格保密。

核心规则:

  • 公钥加密的数据,只有对应的私钥才能解密。(用于加密)
  • 私钥加密的数据(即数字签名),只有对应的公钥才能验证。(用于签名)

核心特性:

  • 解决密钥分发问题:无需交换私钥即可建立安全通信。
  • 计算缓慢:算法复杂,加解密速度远慢于对称加密,不适合加密大量数据。

常见算法与应用场景:

  • RSA:目前应用最广泛的非对称加密算法。 安全密钥交换:在HTTPS连接建立时,客户端使用服务器的RSA公钥加密一个随机生成的“会话密钥”(一把对称加密的密钥),然后发送给服务器。服务器用自己的私钥解密获得该密钥。此后,双方就使用这把高效的对称密钥进行通信。这结合了非对称加密的安全性和对称加密的效率。 数字签名:软件发布者用私钥对软件哈希值进行签名,用户用公钥验证签名。如果验证成功,则证明软件来自可信发布方且未被篡改。
  • DSA:主要用于数字签名,但不能用于数据加密。

简单来说,非对称加密回答的问题是:“如何安全地交换密钥并验证身份?”

总结:如何选择?

特性 哈希算法 对称加密 非对称加密
核心功能 生成数据指纹,用于校验 高效加密大量数据 安全交换密钥、数字签名
密钥 通常无密钥(或加盐) 一把共享密钥 一对公钥和私钥
速度 非常快 极快
典型场景 密码存储、文件完整性校验 数据库字段加密、HTTPS数据通道 HTTPS握手、代码/软件签名

© 2019 - 2025 Lin 的博客

Powered by Hugo with theme Dream.

avatar
关于我

Lin 的 ❤️ 博客

记录一些 🌈 生活上,技术上的事

职业是JAVA全栈工程师