AES 在线加解密实验室与多语言联调工具

支持 CBC / ECB / CTR / OFB / CFB 全部分组工作模式,PKCS7 / ZeroPadding / NoPadding 等多种填充,Base64 与 Hex 密文编码。内置 Java、Python、Node.js、Go 生产级联调代码即时生成,数据纯本地客户端计算绝不上报。

核心特性一览

  • 分组模式全覆盖:支持 CBC、ECB、CTR、OFB、CFB 5 大主流工作模式。
  • 标准填充支持:PKCS#7 (PKCS#5)、ZeroPadding、NoPadding、AnsiX923 等。
  • 生产级联调代码一键生成:自动同步当前 Key 与 IV 生成 Java、Python、Node.js、Go 联调测试代码。
  • 100% 浏览器客户端安全运算:无需网络请求,断网可用,密钥隐私零泄露。

常见问题解答 (FAQ)

Q: 为什么前后端联调 AES 经常出现解密失败?

A: 最常见原因有四点:1. 模式或填充不匹配(Java 默认 AES 实际为 AES/ECB/PKCS5Padding,而常见前端库默认 CBC);2. IV 缺失或长度不满足 16 字节;3. 密钥编码不一致(如 UTF-8 字符串与 Hex 16进制混淆);4. 输出编码不一致(Base64 与 Hex 字符大小写)。DevHub 提供了 Java、Python、Go 等多语言联调代码生成,复制即可对齐双方配置。

Q: PKCS#5 和 PKCS#7 填充有什么区别?

A: 本质上算法完全相同:PKCS#5 规范规定块大小固定为 8 字节(最初用于 DES);而 PKCS#7 允许块大小为 1 到 255 字节。由于 AES 的分组块固定为 16 字节(128位),严格来说 AES 使用的是 PKCS#7。在 Java 中由于历史原因写为 PKCS5Padding,实际在 AES 下就是 PKCS#7,二者完全通用。

Q: 为什么强烈不推荐在生产环境中使用 AES-ECB 模式?

A: ECB(电子密码本)模式将明文拆分为独立的 16 字节块各自加密,相同的明文块永远输出相同的密文块。攻击者即使不知道密钥,也可以通过分析密文重复模式窥探出原始图像轮廓或报文结构(如著名的 ECB 企鹅图),且极易遭受重放攻击与块重组攻击。推荐使用 CBC 或 CTR 模式。

Q: AES 的 128 位、192 位和 256 位密钥有什么差别?

A: 数字代表密钥长度:128 位需要 16 字节,192 位需要 24 字节,256 位需要 32 字节。加密轮数分别为 10、12、14 轮。在当代密码学中,AES-128 已足以抵御暴力破解;金融、政企与极高敏感级系统常规范要求采用 AES-256。密钥越长对 CPU 的算力消耗略有增加,但在现代支持硬件加速的 CPU 上性能差异极小。

Q: 在线使用 AES 工具会有密钥或明文泄露风险吗?

A: 传统服务端在线工具会把您的密钥和数据发送到远端服务器,存在日志记录和网络劫持泄露风险。DevHub 采用纯前端 WebAssembly 与 JavaScript 纯本地客户端运算,全程在当前浏览器内存执行,绝不向任何后端接口上传数据,断网亦可正常工作。

浏览更多 DevHub 生产力工具

JSON 实验室 时间戳转换器 JWT 解码器 全能编解码与哈希 正则测试与速查 Cron 表达式工具 UUID 生成器 颜色转换器 变量命名转换 SQL 格式化 cURL 转代码 Diff 文本对比 JSON 转类型 返回 DevHub 首页