WebTool

加密与安全系列 · 第 4 章

RSA 非对称加密入门:公钥私钥到底谁加密、谁签名?

WebTool 团队 · 发布于 2026-09-08 · RSA / 非对称加密 / 数字签名 / 安全

RSA 用一对数学上关联的密钥:公钥公开、私钥保密。公钥加密的内容只有私钥能解开(机密性);私钥签名的内容谁都能用公钥验证(身份与不可否认)。「私钥加密公钥解密」的说法不准确——那叫签名。 本站提供 RSA 在线工具,密钥生成与运算均在浏览器本地完成。

两条路径别搞反

目标 操作 谁能做 证明什么
保密传输 公钥加密,私钥解密 任何人都能加密 只有私钥持有者能读
身份/签名 私钥签名,公钥验签 只有私钥持有者能签 确实出自私钥持有者

签名实际上是对消息的哈希做私钥运算,不是对全文。所以 JWT 的 RS256 本质 = SHA-256 哈希 + RSA 私钥签名。

为什么实际是「混合加密」

RSA 有两个硬伤:慢(比 AES 慢几个数量级),且单次能加密的数据比密钥长度还短(2048 位密钥配合 OAEP 填充只能加密约 190 字节)。所以真实系统(HTTPS、PGP)都这样做:

  1. 随机生成一把 AES 对称密钥
  2. 用 AES 加密正文(快,且不限长度);
  3. 用 RSA 公钥加密那把 AES 密钥(短,正好一次搞定);
  4. 对方用私钥解出 AES 密钥,再解正文。

工程选型要点

  • 密钥长度:新系统至少 2048 位;1024 位已不推荐。
  • 填充方式:加密用 OAEP,签名用 PSS;教科书里的「裸 RSA」和老的 PKCS#1 v1.5 加密填充都有已知攻击。
  • 什么时候用 ECC:同等安全强度下 ECC(如 P-256)密钥更短、运算更快,新系统可优先考虑;RSA 胜在兼容性与生态。

最后更新:2026-09-08