步步糕升 发表于 7 天前

常见加密算法:数字世界的锁、钥匙与指纹


导语

在网络开发、系统安全、接口开发、数据存储场景中,加密算法无处不在。很多人会有一个误区:加密算法全部都是用来把明文变成密文做保密。但实际上密码学工具箱分工非常明确:有的负责加密保密,有的生成数据指纹校验篡改,有的做身份签名防抵赖,还有专门用来协商密钥的算法。
主流密码学体系分为对称加密、非对称加密、哈希摘要、消息认证码 HMAC、数字签名、密钥交换六大类,现实业务系统几乎不会单独使用某一类,而是多种算法组合协作。同时行业内存在一批已经被证实存在安全缺陷的老旧算法,新项目应当主动规避。本文结合国密标准、公开安全文档,通俗拆解各类算法原理、代表实现、适用场景与避坑要点,适合开发者、技术爱好者阅读国家密码管...。
一、对称加密:同一把钥匙的保险箱

核心特征:加密和解密使用完全相同的密钥。可以类比实体保险箱:发送方用密钥上锁,接收方用同一把钥匙开箱读取内容。

[*]✅优势:运算速度快,CPU 开销低,适合大体积文件、数据库字段、聊天报文、磁盘整盘加密。
[*]❌短板:密钥分发难题。如果在不安全网络传输密钥,密钥一旦被截获,整套加密体系直接失效。
主流算法


[*]AES:全球事实标准,AES‑GCM 认证加密模式为首选,广泛用于 HTTPS、VPN、云存储加密。
[*]SM4(国密):中国商用密码对称加密算法,国内政企、金融系统合规要求场景优先选用。
[*]ChaCha20:流加密算法,对 CPU 硬件加速依赖低,适合移动端、物联网弱设备。
❌应当淘汰的老旧算法

DES、3DES、RC4,存在密钥过短或者设计缺陷,新项目禁止使用。
提示:对称加密擅长加密大量业务数据,但解决不了 “怎么把钥匙安全交给对方” 的问题,这个任务交给非对称加密。
二、非对称加密:公钥私钥,公开的信箱

核心特征:成对生成公钥、私钥。公钥可以对外完全公开;私钥必须本地严格保管,绝不外泄。形象比喻:一个公开投递信箱。所有人都可以拿公钥把信件丢进信箱,但只有持有私钥的人,才可以打开读取里面内容。
重要常识:非对称加密运算开销很大,不适合直接加密大体积数据。工业界通用做法:非对称只加密一小段临时会话密钥,真正业务明文交给 AES/SM4 这类对称加密处理。
主流算法


[*]RSA:经典老牌算法,广泛用于证书、密钥封装;生产环境密钥长度至少 2048 位,优先使用 3072 位以上。
[*]ECC 椭圆曲线:同等安全强度下密钥更短、计算更快,大量用于物联网、移动端、区块链。
[*]SM2(国密):国产非对称算法,用于国密证书、电子签名、身份认证、密钥协商。
❌避坑提醒

DSA 性能偏弱,新项目尽量不再选用;RSA‑1024 及以下属于高风险配置,禁止用于重要业务国家密码管...。
三、哈希(散列)算法:生成不可逆转的数据指纹

重点:哈希算法不属于加密算法!它是单向摘要,不能逆向还原原始明文。功能:不管输入文本、文件多大,输出固定长度摘要,如同给数据生成一枚独一无二的指纹。原始内容哪怕改动一个字符,最终指纹就会完全变化,主要用来做完整性校验。
主流算法


[*]SHA‑256 / SHA‑2 系列:互联网通用安全哈希,用于文件校验、摘要计算。
[*]SHA‑3:新一代哈希标准,抗攻击能力更强,高安全等级系统可选。
[*]SM3(国密):国产哈希摘要算法,国密体系配套使用,用来校验数据完整性。
[*]BLAKE2 / BLAKE3:现代高性能哈希,速度优秀,很多新项目采用。
❌高危淘汰算法

MD5、SHA‑1 已经被找到碰撞攻击手段,可以构造两份不同文件得到相同摘要,禁止用于安全校验场景,仅可做非安全场景的快速文件标识国家密码管...。
重要误区:不能直接用 SHA‑256 保存用户密码!单纯哈希可以被彩虹表破解。存储密码应当使用带盐值的慢哈希:Argon2、bcrypt、scrypt、PBKDF2。
四、消息认证码 HMAC:带密钥的防伪封条

普通哈希只能判断内容有没有改动,但是无法确认消息是谁发出来的。HMAC = 哈希算法 + 保密密钥,相当于快递包裹的防伪封条:

[*]只要密钥不泄露,攻击者即便篡改报文,也无法伪造合法 HMAC 签名;
[*]既校验数据完整性,又校验发送方身份。
典型场景:开放 API 接口签名、Webhook 回调验签、服务间接口防篡改。
常用选型:HMAC‑SHA256、HMAC‑SHA512;不允许使用 HMAC‑MD5。
注意:HMAC 使用的密钥必须严格保管,不能对外泄露。CMAC、GMAC 常和分组加密、GCM 加密模式配合使用。
五、数字签名:电子世界的手写盖章

数字签名建立在非对称密码之上,私钥负责签名,公钥负责验证。与 HMAC 的核心差异:数字签名具备不可抵赖能力。HMAC 通信双方共享同一密钥,无法区分到底是哪一方生成;数字签名私钥仅归属唯一主体,其他人无法伪造签名,事后第三方也可以核验。
现实类比:纸质文件盖章,只有持有印章的人可以盖章,任何人可以核验印章真伪。
主流算法


[*]RSA‑PSS 签名:兼容性强,用于软件安装包签名、电子合同、数字证书。
[*]ECDSA:椭圆曲线签名,TLS 证书、区块链大量使用。
[*]EdDSA(Ed25519):新一代签名算法,实现简洁,抗随机数漏洞,新项目优先考虑。
[*]SM2 签名:国密标准,国内电子签章、政务系统使用。
应用实例:下载软件时操作系统校验发布者签名,确认程序未被篡改、来源可信。
六、密钥交换算法:在窃听环境协商共享秘密

既不加密业务报文,也不做签名;它的任务是:通信双方在公开、可能被窃听的网络,共同算出一份只有双方知道的会话密钥。
经典 DH(Diffie‑Hellman)迪菲‑赫尔曼密钥交换;改进版 ECDH 椭圆曲线密钥交换,TLS1.3、WireGuard 大量使用。通俗理解:两个人在大庭广众交换公开素材,旁观者可以全部看到,但是无法推导出最终共同秘密,只有通信双方得到最终会话密钥。
⚠️注意:原始 DH 无法抵抗中间人劫持攻击,现实会搭配数字签名做身份认证。协商出来会话密钥之后,再交给 AES/SM4 对称加密处理业务数据。
七、真实业务:加密算法是组合工作的,很少单独使用

示例 1 HTTPS 网页访问完整密码学链路


[*]数字签名校验服务器证书,确认访问的是真实网站,防止伪装站点;
[*]ECDH 密钥交换,浏览器与服务器协商生成临时会话密钥;
[*]使用 AES‑GCM 对称加密传输网页 HTTP 业务数据;
[*]AEAD 模式自带完整性校验,检测传输途中报文篡改。
示例 2 第三方开放 API 接口


[*]HTTPS 负责传输通道加密;
[*]HMAC‑SHA256 对请求参数、时间戳做签名,防篡改、防重放;
[*]SHA‑256 做上传文件摘要校验;
[*]数据库用户密码使用 Argon2 加盐慢哈希存储。
选型不止看算法名字,还要关注:加密模式、密钥长度、随机数质量、密钥管理、硬件实现漏洞。算法再好,密钥泄露一切等于零。
八、大众 & 开发者高频认知误区澄清

误区 1:哈希算法就是加密,可以用来加密保存密码

纠正:哈希是单向摘要,无法解密;裸哈希存密码极易被彩虹表破解,密码存储要用 Argon2、bcrypt 这类慢哈希加盐处理。
误区 2:非对称加密性能很强,可以直接加密大文件

纠正:非对称计算开销巨大,只适合加密短密钥、签名;大文件一定交给对称加密处理。
误区 3:MD5 还能用做安全校验

纠正:MD5 存在碰撞攻击,可以造出两份不同文件得到相同 md5 值,安全业务禁止使用,仅可做非安全快速标识。
误区 4:HMAC 和数字签名是一回事

纠正:HMAC 双方共享密钥,无法防抵赖;数字签名私钥唯一归属,可以第三方核验、防抵赖。
误区 5:只要选对算法就万事大吉

纠正:密码系统安全一半看算法,一半看密钥管理、随机数质量、加密模式、代码实现漏洞。密钥泄露,再强算法也没有意义。
误区 6 Base64 属于加密

纠正:Base64 只是编码格式,任何人可以直接解码,不属于加密算法,不能用来保护敏感数据。
全文总结

密码学工具箱分为六大模块,各司其职:

[*]对称加密(AES/SM4):高速加密大量业务数据,痛点是密钥分发;
[*]非对称加密(RSA/ECC/SM2):公钥私钥体系,解决密钥分发、身份;
[*]哈希 SHA‑256/SM3:生成数据指纹,完整性校验,不可逆;
[*]HMAC:带密钥的报文校验,接口防篡改,双方共享密钥;
[*]数字签名(Ed25519/SM2 签名):非对称实现,防篡改 + 不可抵赖;
[*]密钥交换 (DH/ECDH):不安全网络协商会话密钥。
工程实践几乎都是混合搭配,扬长避短。同时要主动规避 MD5、SHA‑1、DES、RC4 等已经被攻破的老旧算法。国产国密 SM2/SM3/SM4 在国内政务、金融等合规场景有明确落地要求。
算法只是密码安全其中一环,密钥保管、随机数、加密模式、代码实现,同样决定整套系统的安全底线。

页: [1]
查看完整版本: 常见加密算法:数字世界的锁、钥匙与指纹