常见加密算法介绍

加密算法是性能优化的地基。选错了,后面再折腾也白搭。

我最早接触加密时,觉得都差不多。后来在小文件场景里吃了亏——用RSA加密几KB的配置文件,结果CPU爆了。其实每种算法都有自己的脾气。今天我就带你过一遍AES、DES、RSA、SM4这几个最常见的家伙。

对称加密:AES、DES、SM4

对称加密的特点是:加密和解密用同一把钥匙。速度飞快,适合大量数据。

DES 是元老,56位密钥。在我刚入行那会儿还常见,但现在早该退役了。为什么?密钥太短,暴力破解也就几天的事。记住:生产环境别用DES。

AES 是当下主力。密钥长度128、192、256位。我个人习惯用AES-128-GCM,兼顾速度和认证。在小文件场景里,AES的吞吐量很稳。

国密SM4 是国产标准,密钥128位,分组结构和AES类似。我在政务项目里用过,算法本身不差,但生态支持弱一点。如果你的客户要求合规,就得上SM4。

核心区别:SM4的轮函数和密钥扩展与AES不同,但性能差距不大。真正影响性能的是实现方式——硬件加速(AES-NI)和纯软件实现能差好几倍。

非对称加密:RSA

RSA 靠数学难题保证安全,加密用公钥,解密用私钥。密钥长度至少2048位。这玩意慢得感人,尤其是私钥操作。

我曾经用RSA直接加密一个10KB的XML文件,耗时200多毫秒。换成AES加密密钥,再用RSA加密那个密钥,总耗时不到5毫秒。所以实际场景里,RSA只用来加密对称密钥或数字签名,别直接怼大数据。

国密SM2与SM4搭配

国密体系里,SM2(椭圆曲线公钥)配合SM4使用,RSA的替代方案。SM2的密钥更短,计算量也更小。但我建议:如果不是强制国密,优先用AES+RSA,因为第三方库和硬件支持更成熟。

算法选择快速指南

算法 类型 密钥长度 速度 安全性 典型用途
DES 对称 56位 快 ❌ 已淘汰 别用
AES 对称 128/192/256 很快 ✅ 强 文件加密、流加密
SM4 对称 128 较快 ✅ 可控 国标合规场景
RSA 非对称 2048/4096 慢 ✅ 强 密钥交换、数字签名

💡 小文件加密建议:用AES-256-GCM一次加密整个文件,密钥再用RSA-2048加密后存储。既保证了数据安全,又控制了性能开销。

算法家族关系图

下面这张图帮你梳理四种算法的定位,还有它们之间的配合方式。

常见加密算法分类与配合 常见加密算法分类与配合 加密算法 对称加密 非对称加密 AES DES(已淘汰) SM4 RSA(2048+) 实际配合(混合加密) 用AES/SM4加密文件 → 用RSA加密AES密钥 → 最终存储

⚠️ 我曾经在加密一个只有几百字节的配置文件时,直接用RSA加密,结果每次读写都要300ms。后来改成AES加密整个文件,再用RSA加密密钥,性能提升了几十倍。记住:不要让非对称算法处理大量数据。

小结

选算法就是选赛道。对称加密扛大旗,非对称加密当配角。小文件场景里,我通常这么干:

  • 文件内容 → AES-256-GCM 加密
  • 文件密钥 → RSA-2048 或 SM2 加密存储
  • 整体哈希校验 → 用SHA-256

嗯,有个细节:AES的GCM模式自带认证标签,不需要额外算MAC。少一次计算,就少一次IO,这在海量小文件场景里很划算。