AES 加密 / 解密
加密使用 AES-GCM 对称加密,PBKDF2 派生密钥、随机盐与 IV,基于口令。
本页内容
什么是对称加密?#
对称加密指的是「加锁」和「解锁」用同一个共享密钥。你给出明文和口令,它返回一段谁都看不懂的密文;要把原文还原回来,必须用同一个口令。当你真正想要的是「保密」——让内容不被看懂——它就是对的工具,这与哈希(只证完整性)或 HMAC(只证来源)完全不同。
本页用的是 AES-GCM,这也是新代码推荐使用的认证加密模式。「认证」二字是关键:GCM 不只是把你的文本搅乱,还会织入一个防篡改的标签。任何人只要翻转密文里的一个比特,解密就会响亮地失败,而不是悄悄返回一堆垃圾。密钥由你的口令经 PBKDF2(SHA-256)派生,默认每条消息用全新的随机盐和 10 万次迭代,因此即便口令偏弱,离线爆破的成本也很高。
整套流程都在浏览器内通过 Web Crypto 完成。没有服务器、没有密钥托管、没有任何网络请求——一旦你弄丢口令,密文按设计就是不可恢复的。
怎么使用#
- 选择模式:Encrypt(明文进 → 密文出)或 Decrypt(密文进 → 明文出)。
- 填入口令。它就是那把共享密钥;之后解密的人必须输入完全相同的那一个。
- 设置选项:
- Key bits —— 128 / 192 / 256(默认 256)。256 是现代基线,另两个主要用于兼容遗留系统。
- Iterations —— PBKDF2 轮数,默认 100000。调高会拖慢离线爆破,也会拖慢你自己;今天看 10 万是个合理的下限。
- Encoding —— base64(紧凑,默认)或 hex。
- 把输入粘进左侧。加密时放任意文本;解密时放你之前复制出去的那段密文。
- 在右侧读输出。状态栏会告诉操作是否成功;解密时口令错了会干净地失败,而不是吐出一堆乱码。
核心特性#
- AES-GCM 认证加密。 任何对密文的篡改都会被发现——被改过的密文会拒绝解密,而不是产出似是而非的垃圾。
- 自描述输出。 盐、IV、密钥位数和迭代轮数都打包进了输出密文,所以解密时除了口令什么都不用额外提供,无需你单独记忆或重传这些参数。
- 每条消息独立随机。 每次加密都抽取全新的随机盐和全新的 12 字节 IV,所以同一段文本加密两次会得到两段完全不同的密文——而两者解密后都还原成同一段明文。
- PBKDF2 可调。 调高迭代轮数,就能让弱口令更扛得住离线攻击。
- 零上传。 加密、解密全程本地完成,口令和明文绝不离开本页。
实战示例#
用口令 correct-horse-battery-staple、key bits 256、iterations 100000、encoding base64,加密消息 launch at dawn。下面这段是真实的、可验证的密文——把它原样粘回 Decrypt、输入同一口令,launch at dawn 就会还原回来:
AQEAAAGGoPVkwA9k0rjoWLw8GXnalIvQoBTP+awUg4DczQwTK5nxMwUaEaQ35WTQbWK8gLMkvuDf+/ndr04f8fw=
(同一段文本再加密一次会得到不同的密文,因为盐和 IV 每次都是全新随机的。)这段密文并不只是密文,它是一个微型信封,布局如下:
version(1) | keyBits(2) | iterations(4) | salt(16) | IV(12) | ciphertext+tag
切到 Decrypt,把上面这段密文原样粘回输入框,输入同一个口令,右侧就会还原出 launch at dawn。接着换一个略有差异的口令再试一次——GCM 的认证标签不会通过,状态栏会报失败,而不是递给你半截损坏的文本。这种「干净的失败」正是认证加密相比老旧的、不带认证的 CBC 模式的核心价值。
常见问题#
万一口令忘了怎么办?#
数据就没了。PBKDF2 和 AES 的设计原则就是「无法从密文反推口令」——没有「忘记口令」的找回路径,没有后门,也没有能重置它的服务器。请把口令当作唯一的单点故障来对待,重要口令建议放进密码管理器。
为什么同一段文本加密两次结果不一样?#
因为每次加密都会生成全新的随机盐和全新的 12 字节 IV。这是刻意的:如果同样的明文永远得到同样的密文,攻击者就能识别出重复出现的消息。这种随机性不影响解密,因为盐和 IV 已经放在密文信封里,会被自动读回。
迭代轮数设多少合适?#
交互式使用下,10 万是个合理的下限。如果你在保护高价值内容、又能接受短暂等待,60 万会让攻击者付出明显更重的代价,而对你来说也并不痛苦。这份成本是按「每次加密或解密」计算的,不随数据字节增长。
处理大文件安全吗?#
任何能粘进来的文本都能处理,但本工具是「页级工具」,不是「流式文件加密器」。对于超大内容,业界标准做法是混合方案(数据用 AES,AES 密钥再用 RSA 或密钥封装处理)——而 AES-GCM 正好是这套模式里负责对称的那一半。