跳到主要内容
加解密工具

RSA + AES 混合加解密工具

使用接收方 RSA 公钥加密较长文本:RSA 包装随机 AES-256 密钥,正文由 AES-GCM 保护。

RSA + AES 混合加解密区

每次加密都会生成新的 AES-256 会话密钥和 GCM IV;所有内容只在当前浏览器中处理。

算法与信封说明 RSA-OAEP/SHA-256 · AES-256-GCM
密钥包装
RSA-OAEP / SHA-256
正文加密
AES-256-GCM
信封格式
Hybrid v1 JSON
Hybrid v1 是本工具的 JSON 信封契约,不是 JWE。解密需要接收方私钥,请勿在不可信设备上粘贴生产私钥。

0 字符

生成或输入 RSA 公钥后,可以加密较长文本

0 字符

Hybrid v1 JSON 信封

0 字符

什么时候使用

适合只有接收方 RSA 公钥、需要加密超过 RSA 单次长度限制的文本。它把 RSA 用于保护随机会话密钥,把较长正文交给 AES-GCM。

快速使用

  1. 加密时粘贴接收方公钥,或先生成一组 RSA 密钥。
  2. 输入正文并点击“生成混合加密信封”,得到 Hybrid v1 JSON。
  3. 接收方使用配套私钥解密整个 JSON;私钥不要和信封一起传递或保存。

工具说明

这个工具把 RSA 和 AES 组合成一个浏览器本地数字信封:

  1. 每次加密生成新的 32 字节随机 AES-256 会话密钥。
  2. 使用 AES-256-GCM 加密 UTF-8 正文。
  3. 使用接收方的 RSA 公钥和 OAEP/SHA-256 包装会话密钥。
  4. 把包装后的会话密钥、IV、密文和认证标签保存为 Hybrid v1 JSON。

解密时,接收方先使用 RSA 私钥解封 AES 会话密钥,再通过 AES-256-GCM 校验信封并还原正文。RSA 只处理固定长度的随机密钥,所以正文不再受 RSA 单次明文长度限制;实际可处理长度仍取决于当前浏览器的内存。

页面算法固定为 RSA-OAEP + SHA-256AES-256-GCM,不提供 PKCS#1 v1.5、AES-CBC 或无认证模式。密钥、明文、会话密钥和信封只在当前浏览器中处理,不会上传或保存。

密钥格式

公钥加密支持:

  • SPKI PEM:BEGIN PUBLIC KEY
  • PKCS#1 PEM:BEGIN RSA PUBLIC KEY
  • X.509 PEM 证书:BEGIN CERTIFICATE
  • RSA 公钥 JWK

私钥解密支持:

  • PKCS#8 PEM:BEGIN PRIVATE KEY
  • PKCS#1 PEM:BEGIN RSA PRIVATE KEY
  • 包含完整私密参数的 RSA 私钥 JWK

页面可以生成 2048、3072 或 4096 位 RSA 密钥对,默认使用 2048 位。生成结果是 SPKI 公钥和未加密 PKCS#8 私钥。

Hybrid v1 信封

{
  "v": 1,
  "alg": "RSA-OAEP-256",
  "enc": "A256GCM",
  "encryptedKey": "<Base64 RSA ciphertext>",
  "iv": "<12-byte Base64>",
  "ciphertext": "<Base64>",
  "authTag": "<16-byte Base64>"
}
  • encryptedKey 是 RSA-OAEP/SHA-256 包装后的 32 字节会话密钥。
  • iv 是每次加密重新生成的 12 字节随机 GCM IV。
  • ciphertext 不包含认证标签。
  • authTag 固定为 16 字节。
  • valgenc 的规范 JSON 会作为 AES-GCM AAD 参与认证。

Hybrid v1 是本站工具自己的 JSON 契约,不是 JWE Compact Serialization 或 JWE JSON Serialization。它不会读取 AES v1、v2、v3、v4 信封,也没有其他旧版混合信封兼容逻辑。

安全边界

  • 同一 RSA 公钥可以加密多条消息,但每条消息都会使用新的 AES 密钥和 IV。
  • RSA-OAEP 只负责会话密钥机密性;AES-GCM 同时保护正文机密性和信封完整性。
  • 修改 valgencencryptedKeyivciphertextauthTag 后,解密都会失败。
  • 工具不会保存私钥。请勿在不可信设备、共享设备或已被注入脚本的页面中粘贴生产私钥。
  • 这是加密工具,不包含发送方签名或身份认证;仅凭成功解密无法证明消息由谁发送。

常见问题

为什么不直接用 RSA 加密长文本?

RSA 每次只能处理远小于模数长度的数据,而且不适合直接加密大块内容。混合加密只让 RSA 包装固定的 32 字节会话密钥,把正文交给高效的 AES-GCM。

为什么没有算法下拉框?

这个页面用于提供单一、明确的现代组合。RSA 固定为 OAEP/SHA-256,正文固定为 AES-256-GCM,避免生成缺少认证或仅用于旧系统兼容的信封。

这个 JSON 能直接当作 JWE 使用吗?

不能。字段含义与数字信封相似,但编码、AAD 和序列化契约由本工具定义。需要标准 JWE 时,应使用专门的 JOSE 实现。

能证明发送方身份吗?

不能。任何拿到接收方公钥的人都可以生成可解密信封。如果还需要确认发送方身份,应在明确协议中增加数字签名。

密钥和正文会上传吗?

不会。密钥生成、随机数生成、RSA 包装、AES-GCM 加解密和复制都在当前浏览器中完成。