从 BIP39 英文词表中随机选取 4 到 8 个单词,组成便于记忆的密码短语。
AES-GCM 加密 / 解密
该工具本身是英文的;本页面将用您的语言对它进行说明。
使用 AES-GCM 加密 / 解密
功能介绍
用 AES-256-GCM 和密码短语加密文本,或解密由本工具生成的 Base64 字符串。密钥只是密码短语的一次 SHA-256 哈希,因此请使用较长的随机密码短语。
它完全在您的浏览器中运行:您输入的任何内容都不会被上传。
如何使用AES-GCM 加密 / 解密
- 输入密码短语. 在 Password / Key(密码 / 密钥)中输入一个较长的随机密码短语。该字段也接受空值,但那样起不到任何保护作用。
- 粘贴文本. 把要加密的文本,或由本工具生成的 Base64 字符串,放入 Plaintext / Ciphertext(明文 / 密文)。
- 加密或解密. 按 Encrypt(加密)得到 Base64 字符串,或按 Decrypt(解密)将这样的字符串还原为文本。
- 复制并安全分享. 按 Copy(复制),通过一个渠道发送 Base64。通过另一个渠道分享密码短语,例如当面告知或通过电话。
- 处理解密失败. 如果 Decrypt 显示 Error: wrong key or invalid data,请逐个字符核对密码短语,并确认完整复制了整个 Base64 字符串。
示例
短消息
Meet at the usual place at 10:00.sc/i5ncy6JbuW/+WPWQo6pboxhwf1K3tR7fOW49jHPXbZOVhlKrJEXqGkWJ31PqgI7moKwETaLovN0/tlA==Encrypt(加密)返回随机 12 字节 IV、密文和 16 字节认证标签拼接后的 Base64,每次运行结果都不同。请先在 Password / Key(密码 / 密钥)中输入密码短语:工具也接受空密码短语,但那样起不到任何保护作用。
检查内容
| 信号 | 其含义 |
|---|---|
| 密钥 | 密码短语的 SHA-256,用作 AES-256 密钥。没有加盐,也没有慢速派生,因此同一个密码短语总是得到同一个密钥。 |
| 前 16 个 Base64 字符 | 即 12 字节 IV。Encrypt 每次都会生成新的随机 IV,因此同一文本每次运行的输出都不同。 |
| 输出长度 | 12 字节 IV,接着是文本字节,再接 16 字节认证标签,全部以 Base64 表示。空文本得到 40 个字符;23 字节的文本得到 68 个字符。 |
| Error: wrong key or invalid data(密钥错误或数据无效) | 密码短语不同(大小写和空格都算),字符串被改动或截断,或者它不是 Base64。校验失败时,GCM 不会返回任何文本。 |
| 无格式头 | 输出不带版本或算法标记,也没有关联数据,因此其他软件必须采用完全相同的布局和密钥派生方式才能读取。 |
| Base64 输入 | Decrypt 要求输入 Encrypt 生成的标准 Base64。邮件程序添加的空格和换行会被忽略,但缺失或改动一个字符就会导致解密失败。 |
| 接受空密码短语 | 此时密钥是空字符串的 SHA-256,任何人都能算出来,因此文本实际上没有被加密。 |
更多示例
解密示例
Password / Key: example passphrase, not a real secret; Ciphertext: AAAAAAAAAAAAAAAAmdUgeZatb2KYwe2btQ+qgA3xKNnswXrrQ6AeKTDSu03TnrvNXygfDecrypt 显示 Hello from PhishDestroy。该示例使用全零 IV(即开头的 AAAAAAAAAAAAAAAA)生成,仅用于演示;Encrypt 始终使用随机 IV。
密码短语改动了一个字母
The same ciphertext with Password / Key: Example passphrase, not a real secretError: wrong key or invalid data(密钥错误或数据无效)
加密空文本
Plaintext / Ciphertext empty, any passphrase, Encrypt一个 40 个字符的 Base64 字符串(12 字节 IV 加 16 字节认证标签),每次按下都不同。
常见问题解答
密钥是如何由我的密码短语生成的?
AES-256 密钥就是密码短语的一次 SHA-256 哈希,没有加盐,也没有使用 PBKDF2 或 Argon2 之类的慢速密钥派生。因此,较短或容易猜到的密码短语可以在离线状态下被快速暴力破解,请使用较长的随机密码短语,例如由 Passphrase Generator(密码短语生成器)生成的。
输出包含什么?其他软件能解密吗?
输出是 Base64:先是随机 12 字节 IV,然后是密文和 16 字节 GCM 认证标签。如果密码短语错误或任何字节被改动,解密会显示 Error: wrong key or invalid data;其他软件只有使用相同的 SHA-256 密钥和字节布局才能解密。
我的文本或密码短语会被发送到任何地方吗?
不会。加密通过 Web Crypto API 在你的浏览器中运行;密码短语和文本都不会被上传或存储。
我应该在这里加密助记词吗?
不应该。切勿在任何网站中输入钱包助记词;而且由一次未加盐的 SHA-256 哈希生成的密钥,会让弱密码短语可以被离线暴力破解。请离线保存助记词,例如写在纸上或刻在金属上,或存放在硬件钱包中。
其他软件能解密输出吗?
可以,只要遵循相同的布局:密钥 = UTF-8 编码的密码短语的 SHA-256,IV = 前 12 字节,认证标签 = 最后 16 字节,无关联数据。Python 的 cryptography 包和其他 AES-GCM 库都可以做到。
可以用同一个密码短语加密多条消息吗?
每条消息都会获得一个新的随机 12 字节 IV,因此在实际中重复使用不会导致 IV 重复。真正的风险在于密码短语本身:任何知道它的人都能读取用它生成的每一条消息。
与普通 AES 相比,GCM 多了什么?
一个认证标签。对 IV、密文或认证标签的任何改动都会被检测到,解密会失败,而不是返回被篡改的文本。