免费注册

AES 加密解密

用口令或自己的密钥和 IV,按 CBC、GCM 或 CTR 模式加密、解密文字。

关于AES 加密解密

AES 加密解密,用在对接之前先验证一遍:解开接口返回的加密字段,按后端的方式加密一段测试数据,确认手上的密钥和 IV 到底对不对。支持 AES-CBC(PKCS#7 填充)、AES-GCM 和 AES-CTR,密钥 128 位或 256 位,加密、解密都能做,加密结果输出 Base64 或 Hex。

密钥有两种给法。口令模式使用 CryptoJS 和 OpenSSL 的 Salted__ 格式(CBC),网页前端用 CryptoJS 按口令加密的内容可以在这里解开,反过来也行;密钥模式直接填密钥和 IV,Hex、Base64、文本都可以,适合代码里写死密钥和 IV 的情况。没有 AES-192,因为 Chrome 的 Web Crypto 不支持;也没有 ECB,因为它不安全。加解密由浏览器的 Web Crypto 完成,密钥和内容都不上传。口令够不够强,可以用密码强度检测测一下。

AES 加密解密怎么用

  1. 1
    选加密或解密

    再选模式:CBC、GCM 或 CTR。

  2. 2
    填密钥

    输入口令,或填写密钥和 IV(Hex、Base64 或文本)。

  3. 3
    粘贴内容

    加密就贴明文,解密就贴 Base64 或 Hex 格式的密文。

  4. 4
    复制结果

    加密结果可选 Base64 或 Hex,解密结果就是原文。

为什么用熊仔工匠

  • 三种模式

    CBC(PKCS#7 填充)、自带防篡改校验的 GCM,以及 CTR。

  • 兼容 CryptoJS

    口令模式读写 OpenSSL 的 Salted__ 格式。

  • 密钥和 IV 自己定

    Hex、Base64 或文本,密钥 128 位或 256 位。

  • 本机加解密

    使用浏览器的 Web Crypto,内容不上传。

常见问题

AES 加密解密常见问题

支持 AES ECB 模式吗?
不支持。ECB 会把相同的明文块加密成相同的密文,数据的规律会暴露出来,所以特意没有提供,请改用 CBC、GCM 或 CTR。
Java 里的 PKCS5Padding 能对上吗?
能。AES 的分组是 16 字节,Java 写的 PKCS5Padding 实际就是这里 CBC 用的 PKCS#7 填充。
为什么没有 AES-192?
真正做加解密的是浏览器的 Web Crypto,Chrome 的 Web Crypto 不提供 192 位 AES,所以只支持 128 位和 256 位密钥。
解密失败是什么原因?
常见的是密钥、IV、模式或密钥长度和加密方不一致,或者密文是 Hex 却按 Base64 解(反过来也一样)。用口令加密的内容,要用口令模式解。
密钥和数据会上传吗?
不会。加解密在浏览器里用 Web Crypto 完成,页面打开后断网也能用。AES 密钥要交给对方时,可以用RSA 加密拿对方公钥加密。
把AES 加密解密分享给朋友打开浏览器就能用,对方不注册也能先试。

相关工具

HASH 哈希加密 MD5 / SHA一次算出文字的 MD5、SHA-1、SHA-256、SHA-512 和 SM3。
TIME Unix 时间戳转换Unix 时间戳与日期时间互转,同时显示本地时间和 UTC。
U+UNI Unicode 编码转换文字与 \u 转义、&#; 编码、U+ 码点、UTF-8 字节互转。
&;HTML HTML 实体编码转换把文字转成 HTML 实体,或把实体还原成文字。
JWT JWT 解析解析 JWT 的头部和载荷,检查过期时间和签名。
01BIN 进制转换数字在二进制、八进制、十进制、十六进制等进制之间转换。
BASE Base32 / Base58 编码Base32、Base58、Base85、Base16 的编码与解码。
0xHEX 文本 Hex 编码转换把文字按 UTF-8、GBK 或 UTF-16 转成十六进制,或反过来。