Cheat Sheet速查表
跳转到主要内容

加解密与现代密码学算法全景速查表

在现代软件工程与系统架构中,密码学算法是构筑网络信任、数据安全与身份防伪的底层支柱。密码系统围绕四大核心安全目标构建:机密性(防止泄密)、完整性(防止篡改)、身份认证(确认身份)与不可否认性(防止抵赖)。

本速查表以高密度表格形式系统梳理现代加解密算法体系,涵盖对称加密、非对称加密、散列哈希与密码专用慢哈希、数字签名、密钥交换、国密算法对照以及工程避坑法则,便于日常架构设计与接口安全速查。

🔗 相关矩阵速查:AI 核心算法全景速查表 · Python 速查表 · Claude Code 常用命令速查表


1. 现代密码学 5 大体系对比总览

体系分类核心作用与数学本质密钥特征计算性能是否可逆典型工程代表算法核心应用场景
对称加密 (Symmetric)明文与密文双向变换,加解密使用同一把共享密钥共享单密钥(必须安全分发保管)极快 (硬件指令集加速)是AES-GCM、ChaCha20、SM4大规模数据传输、数据库落库加密、磁盘存储加密
非对称加密 (Asymmetric)利用数学单向陷门函数(大素数分解、椭圆曲线离散对数),公钥加密私钥解密公钥(公开)+ 私钥(私密保管)较慢 (计算密集型)是RSA-4096、ECC (P-256)、SM2、ElGamal敏感会话密钥分发、小数据信封加密
单向散列哈希 (Hash)将任意长度输入映射为固定长度摘要,具备雪崩效应与抗碰撞性无密钥(可配合加盐 Salt)极快否SHA-256、SHA-3、SM3、BLAKE2文件完整性校验、区块链哈希指针、数字证书指纹
消息认证码 & AEAD在提供数据机密性的同时,生成认证标签(Tag)校验数据完整性与来源真实性共享对称密钥 + Nonce (一次性随机数)极快加密部分可逆AES-GCM、ChaCha20-Poly1305、HMAC-SHA256HTTPS/TLS 1.3 会话通信、API 接口防篡改校验
数字签名与密钥交换私钥签名、公钥验签;或双端在不安全信道协商出安全的对称会话密钥签名方持私钥,验证方持公钥;交换需各自生成临时公私钥对中等签名本身不可逆签名:Ed25519、ECDSA、RSA-PSS
交换:ECDHE、X25519、SM2 密钥协商
软件分发防伪签名、Git Commit 签名、TLS 握手前向保密

2. 对称加密与分组工作模式速查

2.1 现代主流对称加密算法对比

算法名称算法类型标准密钥长度安全评级硬件加速支持工业实践建议
AES (Advanced Encryption Standard)分组密码 (128-bit 块)128 / 192 / 256 bit★★★★★ (黄金标准)现代 CPU 均原生支持 AES-NI 指令集绝大多数场景的首选标准,推荐优先使用 AES-256-GCM
ChaCha20流密码 (Stream Cipher)256 bit★★★★★ (顶级推荐)无需专用硬件指令集,在 ARM/移动端极快配合 Poly1305 使用;移动端设备、老旧无 AES-NI 芯片首选
SM4 (商密四号)分组密码 (128-bit 块)128 bit★★★★★ (国标合规)近代国产及主流 CPU 均已集成国密指令集中国政企、金融、信创等强合规要求的业务系统首选
3DES (Triple-DES)分组密码 (64-bit 块)112 / 168 bit★★☆☆☆ (已淘汰)慢存在 Sweet32 碰撞漏洞,已被 NIST 彻底移出标准,仅存留于极老金融系统
DES分组密码 (64-bit 块)56 bit❌ 不安全 (已彻底破解)-56位密钥可在数小时内暴力破解,严禁在任何新系统中使用

2.2 分组工作模式优劣与选型禁忌

分组密码本身只能加密固定大小(如 128 位)的数据块,处理长数据必须配合工作模式:

工作模式工作机制是否提供完整性校验 (AEAD)是否支持并行计算安全评级适用场景与避坑要点
GCM (Galois/Counter Mode)CTR 计数器加密 + GMAC 认证是 (原生 AEAD)支持 (加解密全并行)★★★★★ (现代首选)现代网络协议(TLS 1.3)与系统落盘加密第一首选。注意:同一密钥下 Nonce 绝不可重复使用!
XTS基于 XEX 的带密文窃取增强模式否支持★★★★★ (磁盘专用)物理全盘/分区加密事实标准(如 Linux LUKS、macOS FileVault、Windows BitLocker)
CBC (Cipher Block Chaining)前一密文块与当前明文异或再加密否 (需额外搭配 HMAC)仅解密支持并行★★★☆☆ (逐渐被替代)传统老协议常见,强依赖随机初始化向量 (IV);极易遭受填充提示攻击 (Padding Oracle Attack)
CTR (Counter Mode)将计数器加密后与明文异或 (转为流密码)否支持★★★★☆高并发吞吐场景适用;无需 Padding,但必须保证 Counter/Nonce 永远不重复
ECB (Electronic Codebook)每个数据块完全独立、使用相同密钥加密否支持❌ 严禁使用完全泄露明文数据模式特征(经典企鹅轮廓可见漏洞),任何生产环境一律禁止使用

3. 散列哈希与密码存储专用算法速查

3.1 通用单向散列算法(数据校验与指纹)

用于文件校验、数据签名摘要与数字指纹,不可用于直接存储用户登录密码:

算法家族输出长度碰撞抗性 (Collision Resistance)安全评级推荐应用场景
SHA-256 / SHA-512 (SHA-2)256 / 512 bit极强 (未被攻破)★★★★★互联网安全事实标准、TLS 证书签名、区块链工作量证明 (PoW)
SHA-3 (Keccak 架构)224 / 256 / 384 / 512 bit极强 (基于海绵结构,抗长度扩展攻击)★★★★★对抗长度扩展攻击场景、以太坊底层哈希、高安全标准系统
SM3 (商密三号)256 bit极强 (对标 SHA-256)★★★★★中国国密合规场景、金融支付、政务电子凭证、数字身份认证
BLAKE2b / BLAKE3可变长度 (默认 256/512 bit)极强★★★★★纯软件运算速度超越 MD5 与 SHA-256 数倍,极致性能校验场景
SHA-1160 bit弱 (已被 Google 团队攻破碰撞)❌ 已废弃绝不可用于数字签名与安全校验;仅部分遗留系统用于 Git Object ID
MD5128 bit极弱 (几秒内即可人工构造碰撞)❌ 已废弃严禁用于任何安全领域;仅偶尔用于非安全场景下的文件快速去重哈希

3.2 密码存储专用“慢哈希”算法(防暴力破解)

普通哈希(如 SHA-256)设计初衷是追求极致的计算速度,若用于存密码,黑客可利用 GPU/ASIC 矿机以每秒数百亿次的速度暴力破解或碰撞彩虹表。用户密码存储必须使用具备内存硬度 (Memory-Hard) 与高计算开销的慢哈希:

算法名称算法特点核心抵抗能力推荐工程配置参数权威推荐评级
Argon2id现代混合型密码散列算法,结合时间与内存硬度抗 GPU 暴力穷举、抗 ASIC 定制芯片、抗侧信道侧信道攻击内存 64MB,迭代次数 3,并行线程 4★★★★★ (密码哈希金牌首选,Password Hashing Competition 冠军)
bcrypt基于 Blowfish 算法演化,自适应迭代计算成本抗 GPU 暴力碰撞,自带随机 128-bit Salt成本因子 cost 推荐设为 12~14★★★★★ (工业生产应用最广泛、最稳健标准)
scrypt专门设计高内存开销阻断硬件并行 ASIC 破解显著消耗海量内存带宽(N=32768, r=8, p=1)★★★★☆ (加密货币钱包密钥派生标准)
PBKDF2基于 HMAC 的多轮迭代伪随机密钥派生函数纯计算型,抗 ASIC 性能弱于 Argon2迭代次数推荐 (\ge 600,000) 次 (SHA-256)★★★☆☆ (各大合规机构认可的传统保底标准)

4. 非对称加密、数字签名与密钥交换速查

4.1 主流非对称算法与数字签名对比

算法名称数学原理基础推荐安全密钥长度签名/验签速度密钥与密文体积典型适用场景
RSA (RSA-PSS)大整数素因子分解难题(\ge 2048) bit (推荐 3072/4096)验签极快,签名与解密较慢很大 (2048 位密钥生成约 256 字节)兼容性要求极高的旧系统、传统 Web SSL 证书、API 签名
ECDSA (椭圆曲线数字签名)椭圆曲线离散对数难题 (ECDLP)256 bit (P-256) 对标 RSA-3072签名与验签速度均衡小 (显著节省网络传输带宽)移动设备、现代 TLS 证书、比特币/以太坊公链交易签名
Ed25519 (EdDSA 曲线)Twisted Edwards 曲线 (Curve25519)256 bit (等效 RSA-3072 安全度)极快且常数时间执行 (抗侧信道)极小 (公钥 32 字节,签名 64 字节)现代系统首选:SSH 登录公钥、Git 提交签名、安全通信
SM2 (商密二号)基于 256 位椭圆曲线密码学256 bit (安全性等效于 ECC P-256)较快 (硬件优化成熟)小中国国内银行金融系统、电子政务、信创资质与合规认证

4.2 密钥交换与前向安全性 (Forward Secrecy)

协议 / 算法协商机制是否具备完全前向保密 (PFS)核心运作原理与优势
ECDHE (临时椭圆曲线 DH)双方各自生成临时的临时公私钥对进行交换具备 (现代标准)即使服务器长期的私钥在多年后遭到泄露,黑客也无法逆向解密过去历史记录的密文,TLS 1.3 强制要求使用临时模式
X25519基于 Curve25519 的极速 ECDH 密钥交换具备代码极度紧凑、无特定弱曲线陷阱、运行速度极快,现代 WireGuard 与 TLS 首选
SM2 密钥交换基于 SM2 椭圆曲线的三步/两步交互协议具备 (结合临时公私钥)中国商密 SSL 规范规定的标准会话密钥协商算法
静态 RSA 密钥协商客户端生成对称预主密钥直接用服务端公钥加密传输❌ 不具备 (严重安全隐患)已遭 TLS 1.3 废黜:一旦服务器私钥被窃取,过去存储的所有流量历史录包全部被批量明文解密

5. 国际主流标准算法 vs 中国国密算法全景对照

在政企、金融科技与信创合规开发中,经常需要执行国密(SM 算法族)改造对齐:

密码功能板块国际主流事实标准 (NIST / IETF)中国商用密码标准 (GM/T 国密)安全性与性能等效关系典型对标业务场景
非对称加密 / 数字签名RSA-2048 / RSA-4096
ECDSA (P-256)
Ed25519
SM2 (基于 256 位椭圆曲线)SM2 在 256 位密钥长度下,安全性超越 RSA-2048,性能与国际 ECC P-256 相当身份鉴权、SSL 双向证书、开放平台 API 签名
单向密码杂凑 / 哈希SHA-256
SHA-512
SM3 (256 位输出)结构类似 SHA-256,但增加了更复杂的压缩函数步数与设计,抗差分分析能力极强数据完整性校验、区块链哈希上链、数据防伪
对称分组加密AES-128
AES-256
SM4 (128 位密钥与分组)算法安全性与 AES-128 处于同一水平,配合 GCM 模式支持安全 AEAD 认证加密数据库敏感列加密、金融卡交易加密、文件加密
序列 / 流密码ChaCha20 (取代 RC4)ZUC (祖冲之算法)中国自主设计的高性能流密码,被 3GPP 采纳为 4G/5G 移动通信国际安全标准移动蜂窝网络通信加密、实时高速数据流混淆
标识密码体系 (IBC)国际 Identity-Based EncryptionSM9 (基于双线性对 IBC)无需繁琐申请 CA 证书,直接将用户的手机号、邮箱地址作为公钥加密物联网设备鉴权、轻量级终端无证书加密通信

6. 现代工程选型决策矩阵与安全高危避坑法则

6.1 典型业务场景技术选型对照表

业务开发场景首选推荐算法方案次选/兼容备选方案为什么这么选?
用户注册登录密码存储Argon2idbcrypt (Cost=12)具备自适应内存与计算硬度,彻底粉碎 GPU/ASIC 离线爆破彩虹表
数据库个人隐私敏感字段 (手机号/身份证)AES-256-GCMSM4-GCM (国密合规)认证加密防篡改,单条数据独立 Nonce,硬件加速性能开销极低
企业高并发服务端 API 接口防篡改HMAC-SHA256SM3-HMAC对称消息认证码计算快、吞吐高,毫秒级响应海量高并发请求
开放平台多方合作开放接口验签Ed25519RSA-PSS (3072-bit)跨机构无需信任共享密钥,Ed25519 体积极小且签名验签速度飞快
操作系统物理磁盘 / 分区加密AES-256-XTSSM4-XTS专门针对块存储设备扇区设计的加密模式,消除块位置关联缺陷
局域网/跨数据中心高效安全通道ChaCha20-Poly1305AES-256-GCM即使在无硬件加速的低端设备或虚拟机环境依然保持极低延迟

6.2 密码学工程安全避坑 8 大铁律

[!CAUTION] 密码学领域有句名言:“千万不要自己发明密码算法(Don’t roll your own crypto)”。绝大多数安全事故源于算法误用与实现疏忽:

  1. ❌ 严禁使用 ECB 模式:任何场景都不可选用 AES-ECB,明文结构与轮廓在密文中一览无余;
  2. ❌ 严禁 Nonce / IV 重复使用:在 GCM 或 ChaCha20 等流式/认证模式中,若同一密钥下复用了相同 Nonce,攻击者可直接数学推导出明文甚至认证密钥;
  3. ❌ 严禁使用普通哈希(MD5/SHA-256)存储用户密码:必须强制使用自带加盐与内存硬度的 Argon2id 或 bcrypt;
  4. ❌ 彻底摒弃破损算法:生产环境严禁新出现 MD5、SHA-1、DES、3DES 及 RC4;
  5. ❌ 严禁伪随机数生成器:生成私钥、Salt、Token、Nonce 必须调用操作系统提供的密码学安全伪随机数生成器(CSPRNG)(如 Linux /dev/urandom、Node.js crypto.randomBytes、Java SecureRandom),严禁使用 Math.random();
  6. ⚠️ 警惕填充提示攻击 (Padding Oracle):使用 CBC 模式时必须先使用 HMAC 校验密文再解密(Encrypt-then-MAC),或者无脑升级为原生 AEAD (GCM);
  7. ⚠️ 防范时间侧信道攻击 (Timing Attack):校验密码哈希或签名时,不可使用常规字符串比较(遇到不匹配字符直接退出),必须使用常数时间比较函数(如 crypto.timingSafeEqual);
  8. ⚠️ 密钥与代码彻底分离:密钥严禁直接 Hardcode 写入 Git 仓库,必须通过环境变量或专业密钥管理系统(AWS KMS、HashiCorp Vault、阿里云 KMS)动态注入与定期轮转。