AES Encrypt / Decrypt

One input per line. Output is numbered to match the input order.
Pinned tools are listed in your favourites on the home page.Copies a link to this tool that carries your current input, so it opens ready to run.Gives you an iframe snippet for putting this tool on your own site.

Authenticated encryption — tampering with the ciphertext makes decryption fail rather than return garbage.

PBKDF2 key derivation (100,000 iterations, SHA-256), then the cipher you selected. The output is algorithm:salt:iv:ciphertext, so decryption needs only the password. All computation is client-side.

Ctrl+Enter Run  · Ctrl+Shift+C Copy  · Esc Clear

Understand AES Encrypt / Decrypt

在你的浏览器中用口令对文本做 AES 加解密,可选 AES-256-GCM(默认)、AES-128-GCM、AES-256-CBC、AES-128-CBC 或 AES-256-CTR。

How it works

你的口令不是密钥。PBKDF2 会用 HMAC-SHA-256 对一个新生成的 16 字节随机盐迭代 100,000 次,把它拉伸成密钥,因此攻击者每猜一次都要付出这份成本,而针对某个盐预计算的表对另一个盐毫无价值。每次加密都会抽取一个随机 IV——GCM 为 12 字节,CBC 和 CTR 为 16 字节——这就是同一段文本加密两次永远不会得到相同密文的原因。输出是 base64 形式的 algorithm:salt:iv:ciphertext,除口令本身之外,携带了解密所需的每一项参数。

When to use it

  • 在一小段机密内容经由工单、聊天线程或共享文档传递之前先加密它。
  • 生成测试向量,检验服务端的 AES 实现与 WebCrypto 是否一致。
  • 演示带认证的模式与不带认证的模式在实践中的区别。
  • 读回你此前在这里加密并以文本形式保存的内容。
  • 与只能接受 AES-CBC 的遗留系统做互通性验证。

Watch out for

  • GCM 能检测篡改,CBC 和 CTR 不能。使用 GCM 时,密文中一个字节被改动就会让解密直接失败。使用 CTR 时,攻击者翻转密文的某一位就会翻转明文的同一位,而 CBC 正是填充预言攻击这一类问题的所在模式。只有出于互通性才选择 CBC 或 CTR,并且在这样做时要另外对密文加一层 MAC。
  • 口令是上限。100,000 次 PBKDF2 迭代把猜测速度拖慢了那么多倍,却救不了一个弱口令——无论密钥多长,字典词依然会被找出来。这份输出的强度就是你输入内容的强度。
  • 绝不要在同一密钥下重复使用 IV 或计数器块。本工具每次加密都会生成新的盐和 IV,因此按此使用是安全的;但当你重新实现这套格式时这条规则至关重要:重复的 GCM 随机数会泄漏两段明文的异或值,甚至可能暴露认证密钥本身。
  • AES-256 与 AES-128 之争并不是那个要紧的决定。两种密钥长度都没有可实施的攻破;模式和口令才主导现实安全性。不要因为数字更大就选 AES-256-CBC 而弃用 AES-128-GCM。

Not the right tool for: 把机密发给一个尚未与你共享口令的人。这是对称加密,没有密钥交换、没有身份、也没有前向保密——那种场景请使用 age、PGP,或你所在平台已提供的收件人密钥管理。

Frequently Asked Questions

我该选择哪种 AES 算法?

AES-256-GCM 是默认值,对几乎所有新用途都是正确答案。GCM 带认证,因此篡改密文会导致解密失败,而不是返回一堆垃圾。只有当你必须与之互通的系统要求时,才选择 CBC 或 CTR——它们本身都不能检测篡改。

AES-128 比 AES-256 更不安全吗?

两者都被认为是安全的;没有可实施的攻击能攻破其中任一密钥长度。AES-256 面对未来进展的余量更大,是长期数据的惯常选择,而 AES-128 略快一些。你所选的模式(GCM 还是 CBC)对现实安全性的影响远大于密钥长度。

PBKDF2 是什么,为什么要用它?

PBKDF2(基于口令的密钥派生函数 2)使用带随机盐的 HMAC-SHA256 迭代 100,000 次,把人输入的口令变换成密码学密钥。这些迭代让暴力破解比只哈希一次慢 100,000 倍。

可以用别的语言解密这里的输出吗?

可以。输出为 algorithm:salt:iv:ciphertext,包含解密所需的每一项参数。在任意语言中复现相同的 PBKDF2 设置(100,000 次迭代、SHA-256、内嵌的盐)以及所指定的加密算法,密文就能被完全一致地解密。

How to Use AES Encrypt / Decrypt

  1. Paste or type your input in the input area above.
  2. The tool processes your input automatically or click Run.
  3. Copy or download the result using the action buttons.
  4. Use Ctrl+Enter to run quickly from the keyboard.