RSA 密钥对生成指南:公钥加密与私钥签名的完整流程
加密编码(更新于 2026年6月11日)
什么是 RSA 密钥对
RSA 是非对称加密算法,使用一对密钥:
| 密钥 | 用途 | 分发方式 |
|---|---|---|
| 公钥 (Public Key) | 加密 / 验签 | 可公开分发 |
| 私钥 (Private Key) | 解密 / 签名 | 仅自己持有 |
核心原则:公钥加密的数据只有私钥能解,私钥签名的数据公钥能验。
密钥长度选择
| 长度 | 安全等级 | 适用场景 |
|---|---|---|
| 1024 位 | ❌ 已不安全 | 遗留系统 |
| 2048 位 | ✅ 基本安全 | 日常使用 |
| 3072 位 | ✅ 较高安全 | 中等敏感数据 |
| 4096 位 | ✅ 高安全 | 高敏感数据 / 长期密钥 |
生成 4096 位密钥耗时约为 2048 位的 4-8 倍,加解密也更慢,请按需选择。
生成密钥对:步骤详解
第一步:打开 RSA 密钥对工具
访问 RSA 密钥对工具,选择密钥长度(推荐 2048 或 4096)。
第二步:生成密钥对
点击「生成密钥对」,工具会自动生成:
- 公钥:以
-----BEGIN PUBLIC KEY-----开头的 PEM 格式文本 - 私钥:以
-----BEGIN PRIVATE KEY-----开头的 PEM 格式文本
第三步:保存密钥
公钥 → 发送给需要加密数据给你的对方
私钥 → 安全保存,切勿泄露(不要提交到 Git!)
PEM 格式说明
PEM 是 Base64 编码的密钥文本,常见格式:
-----BEGIN PUBLIC KEY----- ← PKCS#8 公钥
MIIBIjANBgkqhkiG9w0BAQEFAAOC...
-----END PUBLIC KEY-----
-----BEGIN RSA PRIVATE KEY----- ← PKCS#1 私钥
MIIEpAIBAAKCAQEA0d7...
-----END RSA PRIVATE KEY-----
-----BEGIN PRIVATE KEY----- ← PKCS#8 私钥
MIIEvgIBADANBgkqhkiG9w0BAQEF...
-----END PRIVATE KEY-----
PKCS#8 是通用格式,PKCS#1 是 RSA 专用格式,大多数现代系统优先使用 PKCS#8。
公钥加密 + 私钥解密
使用 RSA 加解密工具:
- 将明文粘贴到输入框
- 选择「公钥加密」
- 粘贴对方的公钥
- 点击加密,得到密文
- 对方收到密文后,用私钥解密即可还原
私钥签名 + 公钥验签
签名用于证明「这条消息确实是我发的」:
- 用 RSA 加解密工具 选择「私钥签名」
- 输入消息内容和私钥
- 生成签名值
- 对方用你的公钥验证签名,确认消息未被篡改
RSA vs AES:何时用哪个
| 场景 | 推荐 | 原因 |
|---|---|---|
| 大文件加密 | AES | RSA 太慢,仅适合小数据 |
| 密钥交换 | RSA | 用公钥加密 AES 密钥 |
| 数字签名 | RSA | 非对称特性天然适合 |
| JWT Token | RSA | 服务器私钥签,客户端公钥验 |
实际中常组合使用:RSA 传输 AES 密钥,AES 加密实际数据(混合加密)。
常见问题
| 问题 | 原因 | 解决 |
|---|---|---|
| 解密失败 | 密钥不匹配 | 确认公私钥是同一对 |
| 数据太长错误 | RSA 有长度限制 | 改用 AES 或分段加密 |
| 格式解析错误 | PEM 头尾缺失 | 检查是否完整复制 |
| 生成很慢 | 4096 位密钥 | 正常,可先用 2048 位 |
总结
RSA 密钥对是非对称加密的基础。掌握公钥加密、私钥签名的流程,理解密钥长度的安全含义,是安全开发的关键技能。RSA 密钥对工具 和 RSA 加解密工具 让你在浏览器中完成全流程操作。
#RSA#密钥对#非对称加密#公钥#私钥