ToolAct工具行动

RSA 加密解密工具

在线 RSA 非对称加密,支持密钥对生成、公钥加密、私钥解密

加密配置

密钥管理

公钥
私钥

选择操作

输入内容
字符数: 0
字节数: 0
转换结果
字符数: 0
字节数: 0

什么是 RSA 加密?

RSA(Rivest-Shamir-Adleman)是世界上第一个广泛使用的非对称加密算法,由三位 MIT 数学家 Ron Rivest、Adi Shamir 和 Leonard Adleman 于 1977 年发明。与 AES 等对称加密算法不同,RSA 使用一对密钥:公钥用于加密,私钥用于解密。公钥可以公开分享,而私钥必须严格保密,这种机制从根本上解决了密钥分发的难题。 RSA 的安全性基于大整数质因数分解的数学难题——将两个大素数相乘非常容易,但将结果分解回原来的两个素数却极其困难。目前推荐使用 2048 位或更长的密钥,因为 1024 位密钥已被认为不够安全。量子计算机的发展对 RSA 构成潜在威胁,但目前实用的量子计算机尚未出现。 RSA 的应用场景包括:HTTPS/TLS 握手阶段的密钥交换、数字签名和身份验证(如 SSH、代码签名)、电子邮件加密(PGP/GPG)、区块链和加密货币的交易签名等。在实际应用中,RSA 通常用于加密对称密钥(如 AES 密钥),再由对称密钥加密实际数据,这种混合加密方式兼顾了安全性和性能。本工具使用浏览器原生 Web Crypto API 实现 RSA 加密解密,所有操作在本地完成。

使用方法

基本操作

  1. 选择密钥长度(推荐 2048 位或以上)
  2. 选择填充方式(推荐 OAEP,安全性更高)
  3. 选择哈希算法(推荐 SHA-256)
  4. 点击「生成密钥对」创建公钥和私钥
  5. 加密时:将公钥粘贴到公钥区域,输入明文,自动输出密文
  6. 解密时:将私钥粘贴到私钥区域,输入密文,自动输出明文
  7. 复制结果或点击「交换」按钮交换输入输出

参数说明

密钥长度2048 位是当前最小推荐值,3072 位提供更高安全性,4096 位适合高安全需求场景。密钥越长,加解密速度越慢。
填充方式OAEP(最优非对称加密填充)是推荐的填充方式,具有随机性,相同明文每次加密产生不同密文。PKCS#1 v1.5 是旧标准,兼容性好但安全性略低。
哈希算法OAEP 填充使用的哈希函数。SHA-256 是推荐选择,SHA-384 和 SHA-512 提供更高安全性,SHA-1 已不推荐使用。

使用示例

基本加密

使用 RSA 公钥加密一条消息

1. 生成 2048 位密钥对
2. 复制公钥
3. 输入明文:Hello, RSA!
4. 选择 OAEP + SHA-256
5. 输出:Base64 格式的密文

典型工作流

安全通信的标准流程

发送方:
1. 获取接收方的公钥
2. 用公钥加密消息
3. 发送密文

接收方:
1. 用自己的私钥解密
2. 获取原始消息

使用技巧

最佳实践建议

RSA 适合加密小数据(如密钥)
大量数据应使用混合加密:
1. RSA 加密 AES 密钥
2. AES 加密实际数据
3. 发送 RSA 密文 + AES 密文

常见问题 (FAQ)

Q: RSA 和 AES 有什么区别?

A: RSA 是非对称加密算法,使用公钥加密、私钥解密,适合密钥交换和数字签名,但速度较慢,只能加密小数据。AES 是对称加密算法,使用同一密钥加解密,速度快,适合加密大量数据。实际应用中常将两者结合:用 RSA 交换 AES 密钥,再用 AES 加密数据。

Q: 密钥长度应该选择多少?

A: 2048 位是当前的最低安全标准,适合一般用途。3072 位提供更高的安全裕度,适合企业级应用。4096 位提供最高安全性,但加解密速度明显变慢。NIST 建议 2030 年后使用 3072 位以上密钥。1024 位密钥已被认为不安全,应避免使用。

Q: OAEP 和 PKCS#1 v1.5 有什么区别?

A: OAEP(Optimal Asymmetric Encryption Padding)是推荐的填充方式,具有语义安全性——相同明文每次加密产生不同密文,能防止选择密文攻击。PKCS#1 v1.5 是旧标准,虽然兼容性好,但存在已知的攻击漏洞(如 Bleichenbacher 攻击)。新应用应始终使用 OAEP。

Q: RSA 能加密多大的数据?

A: RSA 加密的数据大小受密钥长度和填充方式限制。对于 2048 位密钥 + OAEP(SHA-256),最大明文约 190 字节。对于大量数据,应使用混合加密:先生成随机会话密钥,用 RSA 加密会话密钥,再用 AES 等对称算法加密实际数据。

Q: 公钥和私钥有什么区别?

A: 公钥用于加密数据,可以公开分享给任何人。私钥用于解密数据,必须严格保密。用公钥加密的数据只能用对应的私钥解密,反之亦然(用于签名时)。公钥通常以 SubjectPublicKeyInfo(SPKI)格式存储,私钥以 PKCS#8 格式存储,都使用 PEM 编码。

Q: 这个工具的加密安全吗?

A: 本工具使用浏览器原生 Web Crypto API 实现 RSA 加密,算法实现符合标准。但需要注意:1)浏览器环境的安全性不如专业加密设备;2)私钥可能通过浏览器扩展或控制台泄露;3)本工具适合学习、测试和一般用途,生产环境建议使用专业加密服务。所有数据处理都在浏览器本地完成。

Q: 为什么解密时提示失败?

A: 解密失败的常见原因:1)使用了错误的私钥(必须与加密时的公钥配对);2)密文格式不正确(检查 Base64/Hex 格式是否匹配);3)填充方式或哈希算法不一致;4)密文被篡改或截断;5)密钥 PEM 格式不完整(包含头尾标记行)。请确保加密和解密使用完全相同的配置和密钥对。