什么是RSA密钥生成器?

使用Web Crypto API私密生成RSA密钥对。支持1024到4096位密钥长度,以PEM格式导出,适用于SSH连接、TLS证书、JWT签名和加密通信。您的私钥不会离开您的设备。

Web Crypto API 在你的设备上完成全部繁重运算——密钥绝不外传。可选 1024、2048、3072 或 4096 位,并决定密钥对用于加密(RSA-OAEP)还是签名(RSASSA-PKCS1-v1_5)。支持四种导出格式:PEM PKCS#8(现代默认)、PEM PKCS#1(传统 RSA 格式)、供 JWT 与 OIDC 栈使用的 JWK,或可直接粘贴进 authorized_keys 的 OpenSSH ssh-rsa 行。SHA-256 指纹可用于与服务器记录核对。还可为私钥设置口令,将其封装为符合标准的 EncryptedPrivateKeyInfo(PBES2 + PBKDF2-HMAC-SHA256 + AES-256-CBC),日后用 openssl pkcs8 解密。若只保留了私钥,可在「推导公钥」标签页粘贴它来恢复对应的公钥。

使用方法

  1. 选择RSA密钥长度(生产环境建议使用2048或4096位)。
  2. 选择输出格式(PKCS#8、PKCS#1、JWK 或 OpenSSH),并可选地设置口令来加密私钥,然后点击生成,即可在你的设备上创建密钥对。
  3. 按你所选的格式复制或下载公钥和私钥。

何时使用

  • 在禁止把私钥上交第三方服务的项目里签发 JWT。
  • 为单元测试、预发环境或 CI runner 生成一次性密钥对。
  • 为新 SSH 用户、或者新员工入职工单签发一把全新的密钥。

结果

生成4096位RSA密钥对用于JWT签名。公钥配置在认证服务器中,私钥保存在安全的本地机器上。

常见问题

应该选 2048 还是 4096 位?
2048 是目前生产环境的下限,大多数 TLS 证书也仍在使用。4096 位多撑 10 到 20 年安全余量,但签名速度大约慢 5 倍。1024 在现代威胁模型里已经不安全,只在与遗留系统对接时才有意义。
同一对密钥可以同时拿来加密和签名吗?
技术上行,但不建议。Web Crypto API 强制每对密钥只能选一种用途,这也符合 NIST 的建议。一把密钥同时承担两种运算容易触发协议层的攻击,密钥轮换也会更麻烦。生成两对就好。
如何用本工具得到一个 SSH 密钥?
选择 OpenSSH 输出格式(或 SSH 密钥预设):公钥会直接输出为可用的 ssh-rsa authorized_keys 行,私钥是标准的 PKCS#8 PEM,保存为 id_rsa 即可。若你已有 PEM 私钥,也可运行 ssh-keygen -y -f id_rsa > id_rsa.pub 来推导公钥行,或用 puttygen --to-openssh 处理 PuTTY。两者都可直接接受 PKCS#8 和 PKCS#1 输入。
2026 年还应该用 RSA,还是该切到 Ed25519?
Ed25519 更快,只有 256 位密钥,目前 SSH 和签名场景的默认推荐。仍然选 RSA 的情况一般是需要广泛兼容:TLS 根证书、JWT 库的保守默认、老 HSM、遗留 SAML、或任何还不接受 EdDSA 的消费方。
SHA-256 指纹到底有什么用?
它是公钥(SPKI 字节)的简短密码学摘要。通过另一条渠道(电话、Signal 消息、当面)和对方核对指纹,可以确认你收到的就是对方真正生成的那把密钥,而不是被替换过的。

相关工具