RSA 是非对称加密算法,核心特点:公钥公开、私钥保密,两大能力:加密(保密性)、签名(完整性 + 身份认证 + 防抵赖)。
注意:RSA 不适合加密大体积原始数据,一般只用来加密对称密钥、摘要,大文件用 AES 这类对称加密,RSA 保护 AES 密钥。
一、网络通信(最常用)
HTTPS / TLS 浏览器访问网站。握手阶段:服务器用私钥签名证书;客户端用服务器公钥加密随机生成的会话密钥(AES 密钥),后续传输用 AES 加密。
现在 TLS1.3 很多场景改用 ECDH,但 RSA 仍是广泛兼容的密钥交换方案。
VPN、SSH
SSH:RSA 密钥登录(公钥放服务器,本地私钥做身份认证,免密码登录服务器);
IPsec VPN:RSA 签名用于身份校验。
二、数字证书与 PKI 体系
CA 数字证书 域名证书、代码签名证书、文档签名证书。CA 用自己 RSA 私钥签发证书;客户端用 CA 公钥验证证书真伪。
电子签章 / 电子签名 PDF 电子签名、Word 文档签名。 原理:对文档哈希,用签名者 RSA 私钥加密哈希值(生成签名);别人用公钥验证,确认文档没被篡改、是本人签署,不可抵赖。
三、软件安全
代码签名 Windows 驱动、安装包、移动端固件签名。开发者用私钥签名程序;操作系统用公钥校验:判断程序有没有被篡改、是否为正规开发者,阻止恶意修改后的程序运行。
固件升级 IoT 设备(路由器、摄像头、智能硬件)OTA 升级包签名。设备内置厂商公钥,升级前校验升级包签名,防止刷入恶意固件。
四、身份认证
SSH 密钥登录(前面提过)
Git 仓库 SSH 认证 GitHub/Gitee/GitLab SSH 方式:上传公钥到代码平台,本地私钥完成身份认证,不用账号密码。
SM2/RSA 国密体系应用 国内政务、金融系统,RSA 或国密 SM2 做用户身份、报文签名。
五、邮件加密:S/MIME
邮件客户端 Outlook、Foxmail 的 S/MIME。
加密:收件人公钥加密邮件,只有收件人私钥解密;
签名:发件人私钥签名邮件,证明邮件没有被中间人篡改。
六、金融场景
网银、支付网关报文签名:交易报文做 RSA 签名,防止中间人篡改交易金额;
银联、早期支付接口:接口双方交换 RSA 公钥,请求 / 响应报文签名验签。
七、其他场景
加密小敏感数据:比如加密密钥、密码配置(极少直接加密大文本)
区块链:部分早期链账户签名(现在大多换成 ECDSA)
✅ RSA 两种用法区分(容易混淆)
⚠️ RSA 局限性
加密长度有限:RSA2048 最多加密 245 字节,不能直接加密大文件;
运算慢,远慢于 AES;
密钥越长越安全,但性能越低(常用 RSA2048/4096);
存在填充漏洞:必须使用 OAEP/PSS 填充,不能裸 RSA。
简单一句话总结
RSA 主要不是用来加密大文件,而是做密钥传递 + 数字签名,保障网络、证书、软件、交易的身份可信与防篡改。