# RSA 加解密

用 RSA 公钥加密文本，或用匹配的私钥解密密文，使用 OAEP 填充（SHA-1 或 SHA-256）。支持长消息分段。密钥与数据均在本地，不外传。由于 Bleichenbacher 攻击，Node 已禁用 PKCS#1 v1.5 解密，故本工具不提供该选项。

> 标准页面: https://elysiatools.com/zh/tools/rsa-encrypt-decrypt

- **分类:** Security

- **关键词:** RSA, 加密, 解密, OAEP, 非对称

## 概述

实用的 RSA OAEP 加解密工具。

- **模式**：加密（公钥 → 密文）或解密（私钥 → 明文）。
- **填充**：**OAEP**（最优非对称加密填充），SHA-1 或 SHA-256 哈希。OAEP 是现代语义安全的方案，推荐用于新的 RSA 加密。PKCS#1 v1.5 故意不提供——它易受 Bleichenbacher 填充预言攻击，Node.js 拒绝用它解密。
- **分段**：RSA 一次只能加密小块（密钥字节数 − 2×哈希大小 − 2）。超长消息会被切分成块，逐块加密后拼接。解密按模数边界切分再还原。
- **编码**：密文为 hex 或 base64。

为何 OAEP 单块上限 = k − 2hLen − 2：OAEP 增加了哈希长度的种子和标签哈希，外加 2 字节分隔，所以每块可用负载相应缩小。

适用场景：端到端加密演示、向某人的公钥加密小数据、在实践中学习 RSA。全部本地运行。

## 输入项

- **模式** (select)
- **公钥（PEM）** (textarea): -----BEGIN PUBLIC KEY----- ... -----END PUBLIC KEY-----
- **私钥（PEM）** (textarea): -----BEGIN PRIVATE KEY----- ... -----END PRIVATE KEY-----
- **私钥口令（如已加密）** (text): Only if the private key is passphrase-protected…
- **明文** (textarea): The text to encrypt…
- **密文（hex 或 base64）** (textarea): Paste the ciphertext produced by this tool…
- **OAEP 哈希** (select)
- **密文编码** (select)

## 适用场景

- 需要使用接收方的 RSA 公钥加密敏感信息，以确保传输过程中只有持私钥者可读时。
- 收到使用您的公钥加密的密文，需要使用本地私钥（及对应的保护口令）进行安全解密时。
- 在开发或调试非对称加密流程时，需要验证 RSA OAEP（SHA-1/SHA-256）加解密逻辑的正确性。

## 工作原理

- 选择操作模式（用公钥加密或用私钥解密），并输入对应的 PEM 格式密钥。
- 输入需要处理的明文或密文，并选择 OAEP 哈希算法（SHA-256 或 SHA-1）及密文编码格式（Hex 或 Base64）。
- 工具在本地进行计算，若消息长度超出单块上限，将自动进行分段加密或解密，最终输出对应的密文或明文。

## 使用案例

- 安全传递敏感凭证：使用合作伙伴提供的 RSA 公钥加密 API 密钥或密码，生成 Base64 密文后通过公开渠道发送。
- 本地解密测试：开发人员在本地使用私钥和口令解密客户端发送的 OAEP 密文，以验证加密链路是否正常。
- 密码学教学与演示：演示非对称加密中公钥加密、私钥解密的过程，以及不同 OAEP 哈希（SHA-1/SHA-256）对密文的影响。

## 常见问题

### 为什么本工具不支持 PKCS#1 v1.5 填充解密？

因为 PKCS#1 v1.5 易受 Bleichenbacher 填充预言攻击，安全性较低，现代运行时（如 Node.js）已默认禁用其解密，本工具仅提供更安全的 OAEP 填充。

### 为什么长消息可以被加密？RSA 不是有长度限制吗？

本工具支持长消息自动分段。它会将超长文本切分成符合 OAEP 长度限制的小块，逐块加密后拼接输出。

### 我的私钥和数据会被上传到服务器吗？

不会。所有加解密计算均在您的浏览器本地完成，密钥和文本绝不会发送到任何外部服务器。

### 什么是 OAEP 单块最大加密长度？

单块上限为：密钥字节数 - 2 × 哈希字节数 - 2。例如 2048 位密钥配合 SHA-256 时，单块最大可加密 190 字节。

### 支持带密码保护的私钥吗？

支持。如果您的私钥经过密码加密，只需在“私钥口令”输入框中填写对应的密码即可进行解密。

## 相关工具

- [哈希算法对比器](https://elysiatools.com/zh/tools/hash-algorithm-comparator): 对同一输入同时用 MD5、SHA-1、SHA-256、SHA-512、BLAKE2b、BLAKE3 哈希并横向对比：输出长度、十六进制/Base64 摘要、安全状态（已破解/现代）以及相对速度基准。适合教学、选择哈希算法或核对校验和。
- [PKCE Code Verifier 与 Challenge 生成器](https://elysiatools.com/zh/tools/pkce-code-verifier-generator): 生成、校验与验证 OAuth2 / OIDC PKCE（RFC 7636）的 code_verifier 与 S256 code_challenge 配对。三种模式：(1) 从密码学安全随机字节（256/384/512/768 位熵）生成全新的 verifier + challenge；(2) 按 RFC 审计你已有的 verifier——长度（43–128）、字符集 \[A-Za-z0-9-._~\] 与 ≥256 位熵；(3) 通过重算 BASE64URL(SHA256(verifier)) 验证 verifier/challenge 配对。可选构建完整的授权请求 URL 与令牌交换体。补足通用的 nonce-generator（仅输出 verifier+challenge 配对）——增加 RFC 合规审计与配对验证。
- [Excel字段级解密器](https://elysiatools.com/zh/tools/excel-field-decryptor): 使用各种解密方法对Excel文件中的特定字段进行解密以恢复加密信息
- [Excel字段级加密器](https://elysiatools.com/zh/tools/excel-field-encryptor): 使用各种加密方法对Excel文件中的特定字段进行加密以保护敏感信息
- [文本哈希生成器](https://elysiatools.com/zh/tools/text-hash-generator): 一次性计算任意文本的 MD5、SHA-1、SHA-256、SHA-512、CRC-32 哈希。同时给出十六进制和 Base64 两种摘要(基于 UTF-8 编码)。
- [CRC32 校验和](https://elysiatools.com/zh/tools/crc32-checksum): 计算任意文本或原始字节的 CRC32 校验和（IEEE 802.3 多项式）。可输出十六进制、十进制或二进制。接受纯文本（UTF-8）或通过 hex/base64 输入的原始字节。
- [Ed25519 / X25519 密钥生成与签名验证器](https://elysiatools.com/zh/tools/ed25519-x25519-keygen-signature-verifier): 生成 Ed25519 或 X25519 密钥，并支持 Ed25519 消息签名与验证
- [批量条码生成器](https://elysiatools.com/zh/tools/barcode-batch-generator): 从 CSV 或多行文本批量生成 Code 128、EAN-13、UPC-A、ITF-14、QR Code 和 Data Matrix，并导出 PNG ZIP 或 PDF

## 示例

- [无版权MP3音频样本](https://elysiatools.com/zh/samples/mp3-samples): 免费使用和测试的无版权音频样本集合，包括自然声音、冥想音乐和环境音频，适用于测试和开发目的
- [Web Python 图像处理示例](https://elysiatools.com/zh/samples/web-image-processing-python): Web Python 图像处理示例，使用 PIL/Pillow 包括读取、保存、缩放和格式转换
- [Android Java 图像处理示例](https://elysiatools.com/zh/samples/android-image-processing-java): Android Java 图像处理示例，包括图像读取保存、缩放和格式转换
- [Android Kotlin 图像处理示例](https://elysiatools.com/zh/samples/android-image-processing-kotlin): Android Kotlin 图像处理示例，包括图像读取保存、缩放和格式转换

## 相关内容

- [文本大小写、编码与规范化转换工具](https://elysiatools.com/zh/hubs/text-convert): 在一个专题中比较文本大小写转换、全半角转换、编码转换、Quoted-Printable 处理和行内文本规范化工具。
- [Text 工具专题](https://elysiatools.com/zh/hubs/text-utility): 探索 33 个围绕 text 的 utility 工作流工具，快速找到相近能力。
- [文本分析、可读性与内容检查工具](https://elysiatools.com/zh/hubs/text-analyze): 在一个专题中比较文本统计、语言识别、可读性评分、情感分析、内容审核和模式分析工具。
- [文本脱敏、高亮与展示格式化工具](https://elysiatools.com/zh/hubs/text-format): 在一个专题中比较文本脱敏、PII 检测、电话号码规范化、重点高亮、居中排版和 diff 格式化工具。
