使用方法
在线文本AES加解密工具是「填明文/密文、设口令、点加密或解密」三步:
- 在上方文本框填要加密的明文(如演示值「柳泉工具测试」),或粘贴要解密的Base64 密文。
- 「加密口令」填一个只有你知道的短语;「派生迭代次数」默认 10 万,越大越慢但更安全(限 1000~100 万)。
- 点「加密」得到 Base64 密文,点「解密」把 Base64 还原成明文;「复制结果」拿走当前结果;改内容后按 Ctrl/Cmd+Enter 重新处理。
在线文本AES加解密工具能解决什么
它解决「想在本地把一段文字加密保存、又不想装软件或上传到别人服务器」的需求,适合三类场景:
- 本地密存:把备忘录、配置片段、临时口令加密成 Base64 后再存到笔记或文件,即使文件泄露也看不到原文。
- 点对点传递:把密文发给对方,只口头/另通道告知口令,避免明文在聊天记录里裸奔。
- 教学演示:直观看到「同一明文 + 不同随机盐/IV = 不同密文」,理解 AES-GCM 的随机化特性。
本页不做的事:不提供口令强度校验(弱口令仍可能被暴力破解,请自己设长一点);不做密钥托管或找回(口令忘了谁也解不开);不保证脱离本算法格式后能互解,密文格式是本页自定义封装。
原理和变量
① 用了哪个具体函数:核心是浏览器 crypto.subtle 的 encrypt/decrypt 与 deriveKey;密钥派生用 PBKDF2(SHA-256),对称加密用 AES-GCM,全部是 Web Crypto 标准 API。
② 关键参数为什么这样取:盐固定 16 字节、IV 固定 12 字节(GCM 推荐值),避免重放;派生迭代 10 万次让口令暴力破解成本变高;AES 选 256 位,兼顾强度与浏览器普遍支持。
③ 遵循哪个标准:AES-GCM 与 PBKDF2 均来自 NIST 标准(AES FIPS 197、PBKDF2 RFC 8018、GCM 在 NIST SP 800-38D),是业界通用的对称加密方案。
④ 输入怎么变成输出:明文「柳泉工具测试」先用 UTF-8 编码成字节,PBKDF2 从口令+随机盐派生出 256 位密钥,GCM 用随机 IV 加密得到密文,再把「盐+IV+密文」拼成字节流做 Base64,即为最终输出。
⑤ 边界与阈值:口令为空会提示「请填写加密口令」;迭代次数不在 1000~100 万会提示并回退 10 万;密文长度不足或非 Base64 会在解密时给出具体失败原因。
⑥ 常见误用的正确解释:Base64 只是编码不是加密,单独对它解码得不到明文;GCM 同时提供机密性与完整性,篡改密文会被解密拒绝而非吐出乱码;同一明文每次密文不同是因为盐和 IV 随机,这正常且安全。
完整示例(数值仅作演示)
明文 柳泉工具测试、口令 liuquan-demo、迭代 10 万:
- 加密输出:一段以 Base64 表示的「盐(16B)+IV(12B)+密文」字符串,每次都不同。
- 解密还原:把上面那段 Base64 粘回输入框、用同一口令点「解密」,得到原文 柳泉工具测试。
- 若口令错:解密会失败并提示「口令或密文不正确,解密被拒绝」,不会泄露部分明文。
- 若迭代改成 20 万:同一明文口令加密仍可得不同密文,但必须用 20 万才能解,否则失败。
这组示例说明本页「本地、随机化、口令绑定」的三条核心特性。
输入范围与对照表
在线文本AES加解密工具的对照表列出常见对称/相关算法的配置,帮你理解本页所选 AES-256-GCM 的位置:
| 算法 / 模式 | 密钥长度 | 分组 / 说明 |
|---|---|---|
| AES-256-GCM | 256 位 | 本页采用,带完整性校验 |
| AES-128-GCM | 128 位 | GCM 模式,轻量场景 |
| AES-192-GCM | 192 位 | GCM 模式,折中强度 |
| AES-256-CBC | 256 位 | 需额外做 HMAC 才有完整性 |
| AES-128-CBC | 128 位 | 传统 CBC 模式 |
| AES-256-CTR | 256 位 | 流模式,需防 IV 复用 |
| AES-128-CTR | 128 位 | 流模式,轻量 |
| ChaCha20-Poly1305 | 256 位 | 移动端友好,带认证 |
| AES-256-ECB | 256 位 | 不推荐,无 IV 易暴露规律 |
| 3DES | 168 位 | 老旧,逐步淘汰 |
| SM4 | 128 位 | 国密分组算法 |
| RC4 | 可变 | 已被攻破,仅作对照 |
| PBKDF2-SHA256 | 派生 | 本页口令派生所用 |
| bcrypt | 派生 | 常用于口令存储 |
| scrypt | 派生 | 抗 ASIC 的口令派生 |
| Argon2 | 派生 | 现代口令哈希竞赛冠军 |
本页选择 AES-256-GCM,是因为它在浏览器 Web Crypto 中普遍可用,且一次调用同时获得加密与完整性校验。
结果边界和舍入
输出性质:加密结果为 Base64 字符串(含盐、IV、密文),不是人类可读文本;解密结果为原始 UTF-8 文本,中文正常还原。
什么时候会提示:口令为空、迭代次数越界、密文非 Base64 或长度不足、口令与密文不匹配时,都会给出具体中文失败原因,而不是空白或乱码。
安全边界:AES-GCM 提供机密性与完整性,任何对密文的篡改都会被解密拒绝。但口令强度决定最终安全——弱口令仍可能被离线暴力破解。
结果用途:这是本地端到端的加解密,适合个人密存与点对点传递;不要把它当作用户认证或长期密钥管理方案。
常见问题
为什么每次加密结果都不一样?
因为每次都随机生成新的盐(16 字节)和 IV(12 字节),它们参与加密,所以同一明文同一口令也会得出不同密文。这反而更安全,不代表出错;解密时从密文里取出盐和 IV 即可还原。
Base64 是不是就是加密?
不是。Base64 只是一种编码,任何人都能解码。真正的保密来自 AES-GCM,Base64 只是为了让二进制密文能方便复制粘贴与存储。
口令忘了能找回吗?
不能。密钥完全由口令经 PBKDF2 派生,没有后端、没有托管。口令遗忘意味着密文永久无法解密,请务必记好口令。
在 http 页面能用吗?
多数浏览器只在安全上下文(https 或 localhost)下提供 crypto.subtle,http 下会不可用并提示。请用 https 打开本页再操作。
解密提示口令错误怎么办?
先确认三件事:口令完全一致(区分大小写)、密文是完整未截断的同一段 Base64、迭代次数与加密时相同。任一项不符都会解密失败。
中文会被正确加密吗?
会。明文先用 UTF-8 编码成字节再加密,解密后按 UTF-8 解码,中文、emoji 都能原样还原。
我的明文会上传吗?
不会。全部加解密在浏览器内用 Web Crypto 完成,没有任何网络请求;可在 Network 面板复查,点「加密/解密」时请求列表为空。
迭代次数越高越好吗?
不是越高越好。迭代次数越大,暴力破解成本越高,但加密/解密也更慢。10 万是体验与安全的折中;若在低端手机上明显卡顿,可降到 5 万。