常见加密算法介绍
加密算法是性能优化的地基。选错了,后面再折腾也白搭。
我最早接触加密时,觉得都差不多。后来在小文件场景里吃了亏——用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加密后存储。既保证了数据安全,又控制了性能开销。
算法家族关系图
下面这张图帮你梳理四种算法的定位,还有它们之间的配合方式。
⚠️ 我曾经在加密一个只有几百字节的配置文件时,直接用RSA加密,结果每次读写都要300ms。后来改成AES加密整个文件,再用RSA加密密钥,性能提升了几十倍。记住:不要让非对称算法处理大量数据。
小结
选算法就是选赛道。对称加密扛大旗,非对称加密当配角。小文件场景里,我通常这么干:
- 文件内容 → AES-256-GCM 加密
- 文件密钥 → RSA-2048 或 SM2 加密存储
- 整体哈希校验 → 用SHA-256
嗯,有个细节:AES的GCM模式自带认证标签,不需要额外算MAC。少一次计算,就少一次IO,这在海量小文件场景里很划算。