AES 加密工具

在你的浏览器中,用一个口令通过 AES-256-GCM 加密和解密文本。你的口令和文本都留在你的设备上。

AES 加密工具完全在你的浏览器中运行,使用 Web Crypto API。你的口令、你加密的文本以及生成的数据块都留在你的设备上,绝不会上传到 ArrayKit。由于口令是唯一的密钥,请把它妥善保管——它无法被找回。

打开 Diceware 口令生成器

关于 AES 加密工具

AES 加密工具用你选择的一个口令加密一段文本,并交还给你一段单一的 Base64 数据块,你可以安全地把它粘贴进笔记、邮件或聊天。在底层,你的口令会通过 PBKDF2(SHA-256,100,000 次迭代)拉伸成一个 256 位密钥,然后文本用 AES-256-GCM 配合一个全新的随机盐和随机数(nonce)封装,因此两次加密同一条消息绝不会产生相同的输出。切换到「解密」,粘贴数据块,输入相同的口令,原始文本就会回来——错误的口令或哪怕一个被改动的字符都会通不过内置的认证校验。它在分享一个机密、暂存一个 API 令牌,或在一段片段进入你无法掌控的存储之前保护它时都很好用。一切都在你的设备上运行;口令和文本绝不会被上传。

功能特性

如何使用 AES 加密工具

  1. 保持选中「加密」标签页,并输入一个强口令
  2. 输入或粘贴你想保护的文本
  3. 点击「加密」,复制 Base64 数据块以分享或存储
  4. 若要还原,切换到「解密」,粘贴数据块,并输入相同的口令

示例

输入

text: Attack at dawn.
passphrase: correct horse battery staple

输出

AQIDBAUGBwgJCgsMDQ4PEKChoqOkpaanqKmqq5v0… (salt | nonce | AES-GCM ciphertext, Base64)

输入一个口令,输出一段自包含的 Base64 数据块——盐和随机数(nonce)随密文一同传输。

常见错误与故障排除

常见问题

这个 AES 加密工具是如何保护我的文本的?
它用 PBKDF2(SHA-256,100,000 次迭代)和一个随机盐从你的口令派生出一个 256 位密钥,然后用 AES-256-GCM 配合一个随机数(nonce)加密文本。盐、随机数和密文被打包进一段 Base64 数据块,而这一切都在你的浏览器中进行。
解密时如果我输入了错误的口令会怎样?
解密会失败,你会得到一个错误,而不是打乱的文本。AES-GCM 会对密文进行认证,因此错误的口令(或对数据块的任何改动)都会让完整性校验失败,什么也不会返回——没有部分或乱码的输出。
为什么两次加密同一段文本会得到不同的输出?
每次加密都会生成新的随机盐和一个 12 字节的随机数(nonce)。这意味着相同的文本和口令每次都会产生不同的数据块,这是有意设计的——两段数据块仍然都会解密回完全相同的原始文本。
我可以解密另一个 AES 工具创建的数据块吗?
只有当它使用完全相同的方案时才可以:100,000 次迭代的 PBKDF2-SHA256、一个 16 字节的盐、一个 12 字节的 AES-GCM 随机数,以及相同的 盐|随机数|密文 组织方式。本工具的数据块是自包含的,设计用它自己的「解密」模式来解密。
加密在哪里发生,我的口令会被存储在任何地方吗?
一切都通过 Web Crypto API 在你的浏览器本地运行。口令仅在页面打开时保存在内存中,明文和数据块都留在你的设备上,其中任何内容都不会上传到 ArrayKit 或写入任何服务器。
AES-256-GCM 足够强,可以用来分享敏感文本吗?
AES-256-GCM 是一种现代的认证密码,在实际使用中受到信任,因此薄弱环节是口令,而非算法。请使用一个长且难以猜测的口令——一个 Diceware 短语就很合适——并通过你信任的渠道分享数据块。

相关工具

全部 ArrayKit 工具