AES 加解密说明
使用教程
先填口令,再填要加密的文字,点加密。结果是一串 Base64,复制走即可。解密时把这串贴回输入框,口令必须与加密时完全一致,包括空格和大小写。口令框可以切换显示,也可以单独复制,避免看错一位。
口令和正文只在这台浏览器里运算,不会发到网站,页面也不记住它们。关掉标签后,口令就没了。请自己保管口令;只保存密文、忘了口令,这里无法帮你找回。
原理简述
算法是 AES-GCM,密钥长度 256 位。你输入的是口令,不是原始密钥。页面用 PBKDF2、SHA-256、十万次迭代,从口令和一段 16 字节随机盐推导出密钥,再用 12 字节随机初始向量做 GCM 加密。输出按盐、初始向量、密文的顺序拼起来,最后做 Base64。GCM 的认证标签附在密文末尾,被人改一个字符,解密会失败。
同一次口令和同一段明文,每次加密结果都不同,因为盐和初始向量每次重抽。别的网站或 OpenSSL 默认命令不认识这套拼接方式,不能指望互相解密。运算走的是浏览器 Web Crypto,数据不出本机。
相关知识
这是临时交换一段文字用的,不是密码管理器,也没有密钥轮换、多人授权或恢复码。口令太短时,迭代次数也挡不住离线猜解,请用足够长、且没有在别处用过的句子。解密失败时页面只给一句笼统提示,不会告诉你是口令错了还是密文坏了,免得帮人试口令。不要把口令和密文放在同一封邮件或同一条聊天里。
常见问题
- 同一句话加密两次,为什么结果不一样?
- 盐和初始向量每次都是新的随机数,并打进了结果里。解密时会先把它们拆出来,所以不影响用同一口令解回原文。
- 拿到密文的人能看出原文多长吗?
- 大致能。Base64 长度和明文长度相关,GCM 也不会把「空字符串」和「一篇长文」伪装成一样长。需要隐藏长度时,这页做不到。
- 能解其他工具生成的 AES 密文吗?
- 只有对方也使用同样的拼接:16 字节盐、12 字节初始向量、AES-256-GCM,以及同样的 PBKDF2 参数。常见的「AES 再套一层 Base64」对不上这套格式。