我做了一个 AES 在线加密解密工具:调试密钥和 IV 不用再到处找脚本
平时做接口联调、排查第三方回调、或者复现一些历史数据问题时,我经常会碰到 AES 加密相关的内容。
最典型的场景是:对方给你一段密文、一组 key、一个 IV,然后再补一句“我们用的是 CBC + PKCS7,输出 Base64”。听起来信息挺完整,但真要验证的时候,经常还是得临时写脚本,或者翻以前项目里的工具函数。
写一次脚本不难,麻烦的是每次参数都不一样:
- 有的 key 是普通字符串,有的是 Hex,有的是 Base64
- 有的模式需要 IV,有的 ECB 又不需要 IV
- 有的输出是 Base64,有的输出是 Hex
- 填充方式不一致时,解密失败还不一定一眼看得出来
所以我给 Tools Online 做了一个在线工具:AES 在线加密解密工具。
它不是想替代业务里的加密实现,更像是一个开发和调试时随手打开的小面板。你把明文或密文贴进去,填上 key 和 IV,选好模式、填充和输出格式,就能快速验证结果。
这个工具主要解决什么问题
我做这个页面时,最先考虑的是“调试 AES 到底烦在哪里”。AES 本身大家都熟:对称分组密码,固定 128 位分组,常见密钥长度是 128、192、256 位。但真正耗时间的地方,通常不是算法概念,而是各种参数组合。
所以工具里把这些选项都直接摊开了:
- 加密 / 解密模式切换
- CBC、ECB、CFB、OFB、CTR 多种模式
- Pkcs7、ZeroPadding、NoPadding 等填充方式
- key 支持 UTF-8、Hex、Base64
- IV 支持 UTF-8、Hex、Base64
- 输出支持 Base64 和 Hex
- key 和 IV 可以一键随机生成
- 最近处理记录保存在本地,方便来回对比
比如 CBC 通常适合通用加密和文件类场景,CTR 更适合高性能或随机访问的场景;而 ECB 虽然不需要 IV,但不适合用来处理大段数据。页面里我也把这些模式差异做成了说明,避免每次都去查资料。
为什么我强调“本地处理”
加密工具有个比较尴尬的问题:你越需要它,越不应该随便把内容发给陌生服务器。
密钥、密文、接口返回值、日志片段,这些东西看起来不一定是密码,但往往带着业务上下文。随手贴到一个不知道后端怎么处理的网站里,其实风险不小。
所以这个 AES 工具的处理逻辑都在浏览器里完成,输入、key、IV、输出结果不会发送到服务器。它更适合做开发阶段的临时验证,而不是收集你的内容。
开发时的一些小取舍
实现上我没有只做一个“输入框 + 按钮”的版本。因为 AES 调试最容易踩坑的不是按钮少,而是参数状态不清楚。
比如 ECB 模式不需要 IV,页面会直接提示并禁用 IV 输入;解密失败时也会给出明确错误,而不是输出一个空字符串让人猜。复制、粘贴、清空、历史记录这些功能也都补上了,因为真实调试时经常要反复试几组参数。
AI 在这个工具里主要帮我做了几件事:先列出常见 AES 模式和填充方式,再帮我检查 key / IV 格式、错误状态、SEO 文案和 FAQ 是否覆盖到开发者常见疑问。最后的组件状态、TypeScript 类型、15 种语言文案和页面结构,我再按项目里的规范收敛了一遍。
适合什么时候用
我自己会在这些场景里打开它:
- 对接第三方接口时验证签名或加密字段
- 排查后端日志里的 AES 密文
- 比较不同模式、填充方式下的输出差异
- 临时生成一组 key 或 IV 做本地测试
- 给同事解释 CBC、ECB、CTR 这类模式差异
如果你也经常在接口联调里处理 AES 参数,可以试试这个页面:
它不是一个复杂产品,就是把平时反复写脚本的那部分流程做成了一个更顺手的在线工具。
说明:本文介绍的工具和部分内容由 AI 辅助整理,我负责最终实现、校对和发布。
浙公网安备 33010602011771号