AES 加密/解密工具
使用 AES-256-CBC 加密或解密文本。完全在客户端运行 — 提供 64 位十六进制密钥,工具会自动处理填充、IV 和 base64 编码。
输入
Exactly 64 hexadecimal characters (32 bytes), used directly as the AES-256 key — e.g. generate one with any password manager's "hex" export, or run `openssl rand -hex 32`. The IV is derived from this key automatically, so encrypting different messages with the same key reuses the same IV; use a fresh key per sensitive message for stronger guarantees.
输出
使用指南
AES(高级加密标准)是一种对称密钥加密算法,几乎无处不在 — HTTPS、磁盘加密、密码管理器、VPN — 因为它速度快、经过充分研究,而且在使用正确时从未被破解。此工具使用 CBC 模式下的 AES-256 加密或解密任意文本,完全在您的浏览器中运行。
使用方法
- 将您要加密的文本(或在"解密"模式下,要解密的 base64 密文)粘贴到 输入文本 中。
- 输入密钥:正好 64 位十六进制字符(32 字节),直接用作 AES-256 密钥。可以在命令行用
openssl rand -hex 32生成,或用任何能生成 32 字节随机 hex 的工具。 - 选择 加密 或 解密。
- 结果会显示在 结果 中 — 复制或下载即可。
要解密您在这里加密的内容,请切换到"解密"模式,将 base64 输出粘贴回输入文本,并使用相同的密钥。
密钥与 IV 格式
- 密钥:64 位十六进制字符 = 32 字节 = 256 位 AES 密钥。任何更短、更长或非十六进制的内容都会在处理前被拒绝。
- IV(初始化向量):CBC 模式要求每次加密使用 16 字节的 IV。此工具不会要求您单独管理 IV,而是从您的密钥中确定性地推导出 IV(使用该密钥 AES 加密一个固定常量块),并将其附加到密文前面,因此解密只需密钥即可。权衡之处:用相同密钥加密两个不同消息会生成相同的 IV,这可能会泄露两个密文是否共享相同的明文前缀。为获得最大安全性,请对每条敏感消息使用不同的密钥,或者将此工具视为通用文本混淆工具,而不是安全关键型应用中经过验证的加密库的替代品。
- 输出格式:base64 — 16 字节的 IV 后跟密文,并使用 PKCS7 填充到 16 字节的倍数。
常见问题解答
这是"真正的"AES 吗? 是的 — 这是对 FIPS-197 算法从头开始的实现(S-box、密钥编排、MixColumns,全部都有),不是简化的替代品。在开发过程中,我们对照 Node.js 内置的 crypto 模块,通过随机的 AES-128/192/256 CBC 往返测试对其进行了交叉验证,以确认逐位的正确性。
为什么不能输入密码,而要输入十六进制密钥? 将密码转换为密钥(如 PBKDF2 之类的 KDF)需要大量迭代才能抵抗暴力破解,这很慢 — 而此工具以同步方式运行,因此在浏览器和 API 中的工作方式完全相同。直接提供原始密钥可以避开这一权衡。如果您需要基于密码的加密,请先用专门的 KDF 从密码中导出密钥,再将生成的十六进制内容粘贴到这里。
如果我使用错误的密钥解密会发生什么? 您会得到一个可读的错误("invalid padding" 或 "not valid UTF-8"),而不是乱码或崩溃 — 该工具总是会告诉您出了问题,而不是默默地返回无意义的内容。
我的密钥或文本会被发送到任何地方吗? 不会 — 一切都发生在您浏览器的客户端;不会有任何传输或存储。如果您改为通过 API 调用此工具,您的密钥和文本仅针对该单个请求进行处理,并且不会在服务器端记录或存储。
Use it from code
From 3 credits per callREST API
curl -X POST https://api.iotools.cloud/v1/tool/aes-encryption-decryption \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"inputText": "Hello, World!",
"key": "000102030405060708090a0b0c0d0e0f1011121314151617…",
"mode": "encrypt"
}'Swap in your own key from your account. The tool's fields are the body — no wrapper.
Ask an AI agent
Use the IOTools `aes-encryption-decryption` tool (AES Encryption/Decryption) on this input:
YOUR_INPUT_HEREPaste this at any agent connected to the IOTools MCP server, then add your input.