同一段明文、同一个密钥,再算一次却得到不同密文,并不一定是工具出错。使用 AES/DES 加解密工具时,更有意义的检查是:完整保留某一次的密文,用同一算法和同一密钥能否还原原文,以及参数是否符合接收方的约定。

本文只用虚构订单和公开演示口令操作。演示口令、截图中的密文均用于说明页面行为,请勿把它们作为真实系统的加密配置。

先在 AES 标签完成加密

打开 IT 工具中的“AES/DES加解密”,保留“AES 加解密”标签。在上方“加密”区域的明文框输入两行:

演示订单 DEMO-2026
amount=128

右侧密钥填写 demo-only-passphrase。页面自动生成密文,输出框的提示说明其采用 OpenSSL 格式。当前界面提供明文和密钥输入,没有 IV、分组模式、填充方式、原始密钥编码等可选项。

AES标签填写两行演示明文和公开口令后生成密文
AES标签填写两行演示明文和公开口令后生成密文

不要因为输入框叫“密钥”,就把任意一段口令解释成已手动配置的 128 位或 256 位原始密钥。字符串口令与原始密钥字节是不同概念;密码库可以从口令派生实际使用的密钥和 IV。本页没有提供这些参数的独立设置,教程也不能替界面补出一组可选项。

点击加密区的“复制结果”,保存这一次完整输出。不要只复制中间一段,也不要删去结尾可能出现的等号。截图里看着自动换行的长文本,复制时应以结果框的完整内容为准。

用这一份密文还原,而不是重新加密作比较

下方“解密”区域中,粘贴刚才保存的密文,密钥仍填写 demo-only-passphrase。本次输出恢复了原来的中文、订单编号和第二行金额字段。

同一份AES密文使用原口令后恢复两行原文
同一份AES密文使用原口令后恢复两行原文

核对时不只看是否出现文字,还要检查换行、标点和字段值。出现某段可读内容,不等于它就是预期原文;实际接入时,应使用双方事先约定的公开样例逐字对比。

本次又在加密区清空密钥、重新填写同一个演示口令,明文保持不变,生成的第二份密文与第一份不同。检查两份结果的封装后,可以看到盐值不同。带随机盐的口令加密过程会产生这样的变化,因此不能通过“重新加密是否得到同一字符串”判断解密是否正确。

盐值与密文封装需要一并保留。只留下其中的原始密文片段,可能丢掉还原所需的信息。页面写着 OpenSSL 格式,也不代表所有 OpenSSL 命令或其他库的默认派生方式都一致;跨系统联调仍需核对算法、模式、填充、派生方式和封装。

错误密钥会看到什么

保留第一份 AES 密文,仅把解密密钥改为 wrong-demo-key。本次结果框清空,页面出现:

无法解密:密钥错误或密文无效
只更换解密口令后显示密钥错误或密文无效
只更换解密口令后显示密钥错误或密文无效

这个提示不能单独判断究竟是哪一项错了。排查时先确认仍处于 AES 标签,再核对完整密文与口令,随后检查两端的编码和参数约定。不要反复修改一份已经截断的密文来碰结果,也不要把提示当成对所有密文篡改都能可靠检测的保证。

DES 标签实际显示的是 TripleDES

切换到“DES(TripleDES)加解密”,以 TripleDES demo 为明文、相同公开演示口令再做一次加密与回填,本次成功恢复原文。

TripleDES标签中的加密结果回填后恢复公开测试文本
TripleDES标签中的加密结果回填后恢复公开测试文本

这里应按标签中的 TripleDES 理解,不能把它写成可自由选择单 DES、双重 DES 或各种工作模式。AES 与 TripleDES 的密文也不能只换标签就期待互相解开。

TripleDES 适合在明确需求下理解或核对历史兼容数据。NIST 已在相关规范中结束其用于新加密保护的批准,不应因为工具仍提供这个标签,就据此为新系统选择 TripleDES。新系统的算法与参数应按所在系统的安全方案确定;本页的成功往返,只验证了上述演示输入在本页面中的操作结果。