AES 加密 / 解密
粘贴文本和口令,即可用所选 PHP OpenSSL cipher 快速进行 AES 加密或解密。AES 是 NIST 在 FIPS 197 中标准化的对称分组密码,广泛用于 TLS、WPA2、VPN 和磁盘加密系统;但本页只是面向低风险文本的便捷工具,不是经过审计的秘密保险箱。对于敏感文件或需要长期保存的秘密,请使用 age、GnuPG 或 7-Zip 等离线工具。
如何用 AES 加密文本
-
1
选择 OpenSSL cipher
当前选项包括 CBC、CTR 和 GCM 变体。CBC 和 CTR 输出未认证,本工具也不会存储或验证 GCM 认证 tag。
-
2
输入口令
口令会用 SHA-256 哈希一次来形成 AES 密钥。这里没有 PBKDF2、salt、Argon2 或 work factor,因此请使用长且随机的口令。
-
3
粘贴低风险文本
这是服务端 PHP OpenSSL 工具。不要粘贴你不愿发送给本站的密码、生产密钥、私人文档或秘密。
-
4
复制 Base64 结果
加密时会生成随机 IV,把它放在原始密文前面,然后将合并后的字节编码为 Base64。解密需要同一个 cipher 和同一个口令。
本工具实际输出什么
此实现使用 PHP OpenSSL。加密时,它会用 SHA-256 哈希口令,生成所选 cipher 所需长度的随机 IV,加密文本,然后返回:
Base64(IV || 密文)
输出不包含 salt、PBKDF2 参数、HMAC 或 GCM 认证 tag。它不兼容 Web Crypto、age、GnuPG、OpenSSL 命令行配方或 7-Zip 生成的格式。
AES 选项的实际含义
AES 的固定分组大小是 128 bit(16 byte),标准密钥长度为 128、192 和 256 bit。在这里,重要的安全差异不只是密钥长度,还包括加密消息是否经过认证。
| Cipher 选项 | 在本工具中需要知道 |
|---|---|
| AES-128-CBC / AES-192-CBC / AES-256-CBC | 常见分组模式,使用随机 IV 和 PKCS#7 padding。需要单独的 MAC(如 HMAC-SHA-256)来检测篡改。 |
| AES-256-CTR | 将 AES 变成类似流模式的用法。也需要单独认证,并且绝不能用同一密钥复用同一个 IV/counter。 |
| AES-128-GCM / AES-256-GCM | GCM 通常是 AEAD 模式,但前提是保存并检查认证 tag。本工具输出不包含该 tag,因此不要把它当作认证加密来依赖。 |
安全提醒
OWASP 的加密存储指南建议尽量使用认证加密,或使用加密加单独 MAC。使用此工具时请记住:
- 这是对称加密 - 同一个口令用于解密。请通过不同于密文的渠道共享口令。
- 弱口令在这里就是弱密钥 - SHA-256 速度快且无 salt,攻击者拿到输出后可以快速尝试猜测。
- CBC 和 CTR 需要认证 - 如果没有 HMAC 或其他 MAC,攻击者可能能修改密文而不被发现。
- 不要用同一密钥复用 IV 或 nonce - 本工具加密时会生成新的随机 IV,但粘贴的外部数据也必须遵守同一规则。
- 真正的秘密请使用经过审计的工具 - age、GnuPG 和 7-Zip 会更谨慎地处理文件格式、元数据和认证。
常见问题
当前组件会用 SHA-256 哈希口令,并把得到的字节作为 OpenSSL 的密钥材料。它不使用 PBKDF2、salt、scrypt 或 Argon2,因此短口令或复用口令有风险。
不提供。CBC 和 CTR 需要单独的 MAC,例如 HMAC-SHA-256。虽然 GCM 通常提供 AEAD 认证,但本工具不会在 Base64 输出中保存或验证 GCM tag。
当服务器端的 action 运行 PHP OpenSSL 时,处理发生在网站服务器上。这不是只在浏览器内运行的 Web Crypto 工具,因此不要粘贴高价值秘密、私钥或敏感文档。
Base64 结果包含随机 IV,后面跟着原始密文。CBC padding 可能增加字节,Base64 也会让二进制数据大约增加三分之一。保存格式不包含 salt 或认证 tag。
此工具只处理文本,最好仅用于低风险片段。对于文件或重要秘密,请使用 age、GnuPG 或 7-Zip 等经过审计的离线加密工具。
相关工具
A1Z26 密码编码器
使用 A1Z26 密码(A=1, B=2, ... Z=26)编码文本,或把数字序列解码回字母,并可自定义分隔符。
bcrypt 哈希生成器
生成 bcrypt 哈希,或用明文密码对照已有的 bcrypt 哈希进行验证。一个工具内并排支持生成和验证。
Base32 编码器和解码器
使用 RFC 4648 字母表编码和解码 Base32 字符串。适用于 TOTP 密钥、大小写不敏感的令牌和人工输入的标识符。
Base64 文件编码器
将任意文件(PDF、ZIP、图片、可执行文件)编码为 Base64 文本,用于嵌入 JSON、邮件、YAML 或 data URI。在浏览器本地运行,无需上传。
凯撒密码编码器
使用凯撒密码加密和解密文本。支持任意 1-25 位移,ROT13 可作为特殊情况处理,并保留标点和大小写。
Base58 编码器和解码器
编码 UTF-8 文本或十六进制字节,并使用 Bitcoin、Ripple 或 Flickr 字母表安全解码 Base58。