ZH
我的工具

AES 加密解密

用原始密钥或兼容 OpenSSL 的口令(PBKDF2 或旧式)进行 AES(GCM、CBC、CTR、CFB、OFB、ECB)加密和解密。全部在浏览器中运行。

操作
两端必须一致。OpenSSL 在不指定 -iter 时使用 10,000 次。
CBC、CFB、OFB:16 个随机字节。CTR:16 字节的起始计数器。GCM:12 字节。切勿在同一密钥下重复使用。
我的工具 →
广告

AES 是用共享密钥加密数据的标准对称密码。本工具支持带认证的 GCM 以及经典的 CBC、CTR、CFB、OFB 和 ECB 模式,可使用 128、192 或 256 位的原始密钥,也可使用 OpenSSL "Salted__" 格式的口令,所以输出可以直接用 openssl 命令行打开。全部在浏览器中运行。

使用方法

  1. 选择加密或解密以及模式——除非需要与现有系统匹配,否则用 GCM。
  2. 提供原始密钥(十六进制或 Base64)和 IV,或选择口令模式。
  3. 粘贴输入,并说明它是文本、十六进制还是 Base64。
  4. 复制结果;口令模式下,页面还会给出对应的 openssl 命令。

计算公式

AES 以 128 位为一个分组,密钥为 128、192 或 256 位。CBC 用 IV 把各分组链接起来,并需要填充;CTR、CFB 和 OFB 把 AES 变成流密码;GCM 增加 128 位认证标签,可检测到密文或附加数据的任何改动。在口令模式下,工具会选取随机的 8 字节盐,并据此派生 256 位密钥和 IV。

PBKDF2 模式与 openssl enc -aes-256-cbc -pbkdf2 -iter N -md sha256(OpenSSL 1.1.1 及更高版本)一致:密钥‖IV = PBKDF2-HMAC-SHA256(口令, 盐, N, 48 字节)。旧式模式与 openssl enc -md md5 和 CryptoJS.AES.encrypt(text, passphrase) 一致:密钥‖IV 来自只迭代一轮 MD5 的 EVP_BytesToKey,强度较弱,仅用于读取旧数据。

示例

使用密钥 2b7e15…4f3c 和 IV 000102…0e0f,对分组 6bc1be…172a 做不填充的 CBC 加密,得到 7649abac8119b246cee98e9b12e9197d,这是 NIST SP 800-38A 的测试向量。在 PBKDF2 模式下用口令 "correct-horse" 加密的文本,可以用 openssl enc -d -aes-256-cbc -pbkdf2 -iter 600000 -md sha256 -a -A 解密。

常见问题

我的数据会被上传吗?

不会。加密和解密由你设备上的浏览器 Web Crypto API 和内置库完成,密钥和数据不会离开你的设备。

应该使用哪种模式?

建议使用 GCM:它同时加密和认证,被改动的密文会被拒绝。如果必须使用 CBC 或 CTR,切勿在同一密钥下重复使用 IV 或计数器,并加上 HMAC-SHA256 之类的 MAC。真实数据不要使用 ECB。

如何由口令生成密钥?

在 PBKDF2 模式下,对口令和随机的 8 字节盐做 PBKDF2-HMAC-SHA256,迭代次数按你的设置(默认 600,000 次;OpenSSL 自身默认为 10,000 次)。在旧式模式下,使用 OpenSSL 旧的 EVP_BytesToKey 和单轮 MD5,攻击者每秒可以尝试数十亿次,所以只应用于打开已有的数据。

资料来源

最后更新:

引用此工具
APA

kakaoCalc. (2026, November 8). AES 加密解密. https://kakao.mobile/zh/tools/aes-encrypt-tool/

MLA

“AES 加密解密.” kakaoCalc, 8 Nov. 2026, kakao.mobile/zh/tools/aes-encrypt-tool/.

广告