AES / DES 加解密
AES/DES 对称加密解密在线工具,支持 AES-128/256 CBC、AES-GCM 与 DES-CBC 模式,自定义密钥与 IV,Hex/Base64 输出
常见问题
AES-CBC 和 AES-GCM 该选哪个?
GCM 带完整性校验(认证加密),能发现密文被篡改,新项目优先选它。CBC 兼容性更广,但没有认证,需要额外做 MAC。
IV 是什么,为什么不能重复?
IV 是初始向量。同一个密钥下重复使用同一个 IV 会削弱 CBC、直接破坏 GCM 的安全性,所以每次加密都应该是新的随机值。
密钥丢了还能解密吗?
不能。AES 是对称加密,必须用加密时的同一密钥和 IV 才能还原,没有找回机制。
关于这个工具
四个选项的实现路径并不相同:AES-128-CBC、AES-256-CBC、AES-GCM 走浏览器原生 Web Crypto;DES 是页面内纯 JS 实现的(Web Crypto 早已不提供 DES),只为对接遗留系统。
密钥和 IV 怎么解析,是这里最容易出错的地方。规则是:纯十六进制、偶数长度、且长度正好等于算法要求时,按字节解释;否则一律当作 UTF-8 文本,再补零或截断到目标长度,状态栏会注明「已补零或截断」。所以一串「看着像 hex 但少一位」的密钥,过去会被当成文本悄悄换成另一把密钥,现在会直接报错。要求的字节数:AES-128 密钥 16、AES-256 密钥 32、IV 16;AES-GCM 的 IV 固定 12 字节;DES 密钥 8、IV 8。
CBC 没有完整性保护:密文被改动时,多数情况只是解出乱码而不报错(填充恰好合法时连错都不报)。GCM 是认证加密,末尾带 16 字节认证标签,密钥或密文错一个字节就直接失败 —— 新项目优先 GCM。代价是 GCM 对 IV 更敏感:同一密钥下重复使用同一个 IV 会直接泄露两段明文的异或值,并让认证失效。
输出可选 Hex 或 Base64。解密时格式自动判断:纯 hex 且长度为偶数优先按 Hex 解析,其余按 Base64。这个优先级意味着 Base64 密文如果恰好只由 0-9a-f 组成且长度为偶数,会被误判成 Hex —— 概率低但确实存在,遇到解不开先换一种输出格式再试。
DES 的密钥名义上是 8 字节,其中每个字节的最低位是奇偶校验位,真实强度只有 56 位,今天一台普通机器几小时就能穷举完。它在这里只为兼容而存在。
所有加解密都在浏览器本地完成,密钥不会离开这台设备;这也意味着关掉页面后没有任何地方能找回密钥和 IV。