编码实验

一条交接编号加密后,怎样核对密文包与认证解密

极捷工具编辑 · 更新于

用虚构编号完成AES-256-GCM加密往返,区分原始密钥和口令,核对随机IV、认证标签及格式不兼容的边界。

打开AES 文本加解密 →

操作步骤

  1. 打开AES文本加解密,点击生成随机密钥。密钥应有64个十六进制字符,代表32字节原始值;自行单独保存,页面不会帮你找回。此练习只使用虚构文本和临时测试密钥。
  2. 点击载入虚构明文,确认输入为交接编号:A-001,点击加密文本。结果应为JSON包,含format、iv、ciphertext三项,不包含密钥。
  3. 核对format为jijie-aes-gcm-v1,iv有24个十六进制字符。该例明文为20个UTF-8字节,ciphertext含20字节密文加16字节认证标签,共36字节,即72个十六进制字符。
  4. 点击将结果移入输入,保留同一密钥,再点击解密密文包。结果必须逐字为交接编号:A-001;复制结果后可在自己的文本编辑器核对。
  5. 把输入包的ciphertext首个十六进制数字改成另一个有效数字,保持JSON合法,再解密。应显示认证失败且不保留旧明文;恢复完整原包才能继续核对。
  6. 再次加密同一原文,IV和密文通常不同,这是新的随机IV造成的。不要把两次密文不同判为错误,应分别用同一密钥验证解密结果。

跟着示例试一次

只做本地格式实验:交接编号:A-001包含4个汉字、1个全角冒号和5个ASCII字符,UTF-8合计20字节。AES-GCM输出不隐藏长度,认证标签增加16字节。随机IV必须随密文保留,密钥需要另行保管,不要把真实生产密钥放进练习材料。

怎样确认结果正确

加密后的三字段JSON必须完整保存;解密往返核对文字、空格和换行,不只看成功提示。错误密钥或改动密文会认证失败,不应输出部分明文。实现用128位标签和12字节随机IV,密文的最后16字节是标签,没有附加认证数据。工具已用已知AES-256-GCM测试向量与独立OpenSSL实现交叉验证,但这不等于对任何应用的安全认证。API参数说明参考 https://developer.mozilla.org/en-US/docs/Web/API/AesGcmParams 。

常见问题与边界

这是64个十六进制字符的原始密钥,不是64字口令,也不进行PBKDF2派生;空密钥和非法十六进制会报错。新页明确使用AES-256-GCM,不兼容旧页CryptoJS/OpenSSL Salted__口令密文、CBC/ECB、任意Base64/HEX密文或文件。旧密文需要原工具及完整原参数处理,不要丢弃旧流程。明文限1–65536个UTF-8字节,JSON包限140000字符;需要支持Web Crypto的HTTPS或localhost浏览器。文本与密钥仅在当前页面内存处理,不上传、不自动保存;刷新会丢失。工具不能代替密钥管理、身份验证、备份或应用安全设计,密钥丢失无法恢复。