← 返回工具箱

SECURITY / WEB CRYPTO

RSA 密钥生成器

先选择密钥的真实用途,再在浏览器本地生成 PEM 与 JWK。页面会立即做一次加解密或签名验签,避免只导出一对未经检查的字符串。

私钥导出后没有密码保护:它会短暂存在当前页面内存,并可能进入下载目录或剪贴板历史。正式密钥优先在目标服务器、HSM、KMS 或密钥管理系统中生成;不要把真实私钥发进聊天、工单或代码仓库。

用途

尚未生成密钥

OAEP 密钥用于加密;PSS 与 PKCS#1 v1.5 密钥用于签名。不要只因为都叫 RSA 就混用算法、Hash 与 Padding。

Padding 必须匹配

RSA-OAEP、RSA-PSS 和 PKCS#1 v1.5 不是可随意互换的标签。发送方、接收方与验证端必须使用完全相同的用途和参数。

PEM 只是容器

PUBLIC KEY 通常是 SPKI,PRIVATE KEY 通常是 PKCS#8。目标系统若要求 RSA PUBLIC KEY 或传统 PKCS#1 私钥,需要明确转换,不能只改头尾文字。

轮换先认指纹

把 SPKI SHA-256 指纹与部署记录绑定,轮换时同时保留旧公钥的验证窗口。JWK 场景还应设置稳定、可追踪的 kid。

RELATED TOOLS

查看全部工具 →

USE & REVIEW

RSA 密钥生成器常见问题

查看全部工具指南 →

RSA-OAEP、RSA-PSS 和 PKCS#1 v1.5 应该怎样选?

RSA-OAEP 用于加密和解密;RSA-PSS 用于现代概率签名;RSASSA-PKCS1-v1_5 用于兼容仍广泛使用的确定性签名协议。它们的用途和 Padding 不同,通信两端必须按协议固定算法,不能看到同一对 RSA 参数就随意切换。

2048、3072 和 4096 bit 哪个更合适?

2048 bit 仍是很多通用场景的实用基线,3072 bit 提供更大的传统安全余量,4096 bit 会明显增加生成、签名与握手成本,并不自动让整个系统更安全。应优先遵循目标协议、合规基线和密钥生命周期,而不是单纯选择最大数字。

PUBLIC KEY、RSA PUBLIC KEY 与 PRIVATE KEY 有什么区别?

BEGIN PUBLIC KEY 通常封装 SPKI,BEGIN PRIVATE KEY 通常封装未加密 PKCS#8;BEGIN RSA PUBLIC KEY 与 BEGIN RSA PRIVATE KEY 则是 RSA 专用 PKCS#1 结构。不同系统要求不同容器,不能只修改 PEM 头尾。当前工具导出的是兼容 Web Crypto 的 SPKI 与 PKCS#8。

JWK 里的 n、e、d 和 kid 分别是什么?

n 是 RSA 模数,e 是公钥指数;私钥 JWK 还包含 d、p、q 等敏感参数。kid 是上层协议用于选择密钥的标识,不是数学密钥的一部分,因此本页不会擅自生成业务 kid。可用稳定的公钥指纹或自己的轮换规则派生并记录 kid。

页面自检通过是否代表可以直接用于生产?

不代表。自检只证明当前浏览器能用这对密钥完成一次指定算法的加解密或签名验证。生产系统还要正确设置 Padding、Hash、标签、消息长度、密钥权限、轮换、备份、吊销和侧信道防护,并优先让私钥留在 KMS、HSM 或服务端密钥库。

生成的 RSA 私钥会上传或保存吗?

不会主动上传。Web Crypto 在当前浏览器生成密钥,PEM、JWK、指纹、自检和 ZIP 也在本地完成;刷新后页面状态会丢失。但复制、下载、云同步、浏览器扩展、录屏和系统备份都可能留下私钥副本,正式密钥不应在普通网页中生成后随意传递。