什么是 AES 加密?
AES 是对称分组密码,加密和解密使用同一把密钥。128、192、256 表示密钥位数,而不是文本字符数;三种密钥都使用 128 位分组。模式决定消息如何处理,以及是否提供认证。本工具支持 GCM、CBC、CTR,不代表能兼容所有标注 AES 的网站。
默认密码模式使用 PBKDF2-HMAC-SHA256、600000 次迭代和每次新生成的 16 字节 salt,派生 256 位密钥;随后采用 12 字节 nonce 和 128 位 tag 的 AES-GCM。这是本站明确定义的 v1 协议,并不是通用的 AES 密码文件格式。
如何加密并验证恢复
- 输入准确文本;工具不会主动去掉空格或转换换行。
- 选择密码模式并输入密码。公开示例仅供测试,不是推荐密码。
- 加密后下载完整 JSON 包,将密码单独保存。只复制 ciphertext 字段不足以恢复。
- 切换到解密,粘贴完整包并输入同一密码。认证失败时不会输出部分明文。
包中保存版本、派生参数、salt、nonce、tag 长度和末尾带 tag 的密文,不保存密码或派生密钥。每次加密生成新的 salt 和 nonce,所以同样的文本与密码也通常产生不同结果。
什么时候使用原始密钥
只有对方系统提供准确的密钥、模式及参数时,才使用兼容模式。AES-128/192/256 的 Hex 密钥分别为 32/48/64 个字符;Base64 解码后为 16/24/32 字节。UTF-8 必须按字节计算,不能直接数汉字个数。
GCM 输出末尾附加 16 字节 tag;CBC 使用 PKCS7 和 16 字节 IV;CTR 使用 16 字节初始计数器,计数长度固定为 64 位。CBC 与 CTR 不自带认证。原始密钥模式下载会保存密文与非秘密参数的 JSON 描述,密钥应另存;该文件不是 OpenSSL 或 CryptoJS 的密码包。
相关工具与阅读
技术参考
更新于 2026 年 10 月 16 日
