在线工具箱
RSA 密钥对

RSA 密钥对生成器

本地生成 RSA 公私钥对,支持 PEM / JWK / OpenSSH 与 SHA-256 指纹。

隐私安全:所有处理均在您的浏览器本地完成,数据绝不上传
RSA密钥非对称加密

私钥请妥善保管

密钥完全在你的浏览器本地生成,本工具不会上传、不会保存、不写入任何 Cookie 或本地存储。生成后请立即下载并妥善保管私钥:私钥一旦泄露,对应的加密与签名都不再安全;私钥一旦丢失,将无法恢复。

生成参数

密钥长度
密钥用途

工作原理

  1. 1选择密钥长度(2048 / 3072 / 4096 位)与密钥用途(加密 RSA-OAEP、签名 RSA-PSS 或 RSASSA-PKCS1-v1_5)。
  2. 2点击「生成密钥对」,浏览器调用 WebCrypto 的 crypto.subtle.generateKey 在本机生成随机密钥对,全程不联网。
  3. 3生成完成后导出多种格式:公钥为 PEM(SPKI)与 OpenSSH,私钥为 PEM(PKCS#8),同时给出完整的 JWK 结构。
  4. 4工具对公钥 DER 计算 SHA-256 指纹,可用于核对密钥是否一致;私钥默认掩码,需要时点击「显示」查看。
  5. 5点击复制或下载保存:可分别下载 public.pem / private.pem,也可打包为包含两个文件的 .zip。

常见问题

生成的密钥安全吗?会不会被上传?

安全。密钥由浏览器内置的 WebCrypto(crypto.subtle.generateKey)在本地生成,随机数来自操作系统熵池;页面不发起任何网络请求,私钥不会离开你的设备,断网也能正常使用。

为什么必须通过 HTTPS 或 localhost 打开才能生成?

WebCrypto 属于安全上下文(Secure Context)能力,浏览器只在 HTTPS 或 localhost 下暴露 crypto.subtle。若通过 http:// 访问普通域名,工具会给出提示并禁用生成按钮,此时请改用 https 地址或在本机 localhost 下打开。

2048、3072、4096 位该怎么选?

2048 位是目前兼容性最好、性能最高的选择,能满足绝大多数场景;3072 位安全强度约等于 128 位对称密钥,是中长期推荐;4096 位安全性最高但生成需要数秒、加解密也更慢,仅在合规要求时选用。

三种用途有什么区别?

RSA-OAEP 用于加密小段数据或封装对称密钥,填充更安全,也是 JWT 的 RSA-OAEP 算法;RSA-PSS 是概率性填充签名,安全性最好,对应 JWT 的 PS256/384/512;RSASSA-PKCS1-v1_5 是确定性填充签名,兼容性最广,对应 JWT 的 RS256/384/512 与大量历史系统。同一条密钥只能按生成时的用途使用。

PEM 与 JWK、OpenSSH 格式有什么区别?

PEM 是 OpenSSL / ssh-keygen 等工具通用的 Base64 文本格式,公钥用 SPKI、私钥用 PKCS#8 封装;JWK 是 JSON 结构,常用于 Web 与 JWT 场景;OpenSSH(ssh-rsa AAAA...)是 ssh 与 GitHub、GitLab 添加公钥时使用的单行格式。三者内容等价,只是编码方式不同。

指纹有什么用?

指纹是公钥 DER 编码的 SHA-256 摘要(冒号分隔大写十六进制),用于快速核对两处公钥是否完全一致。你可以用 ssh-keygen -l -f public.pem 查看同样的指纹,或与服务器、证书中的指纹比对。

更多在线工具