RSA 密钥对生成器(PEM、JWK、OpenSSH)
在浏览器中生成 RSA 密钥对(2048–4096 位):PKCS#8 和 PKCS#1 私钥、SPKI 公钥 PEM、JWK 以及 OpenSSH 公钥行,并附指纹。
RSA 密钥对依然是 TLS、JWT 签名(RS256)、SSH 和加密数据交换中接受度最广的公钥格式。这个生成器用浏览器的 Web Crypto API 创建密钥对,并导出为所有常见格式:PKCS#8 和 PKCS#1 的 PEM 私钥、SPKI 公钥、JSON Web Key 以及 OpenSSH 公钥行。每一对密钥都会用导出的文件做一次签名和验证(或加密和解密)的往返检查。
使用方法
- 选择密钥长度——新密钥用 3072 位,追求最大兼容性用 2048 位。
- 选择密钥用于签名(RS256 / PS256)还是加密(RSA-OAEP),这会决定 JWK 的字段。
- 点击按钮;较长的密钥可能需要几秒钟。
- 复制你的软件所需的格式,并保管好私钥。
计算公式
n = p × q for two random primes of bits/2 each; e = 65537; d = e⁻¹ mod lcm(p − 1, q − 1). The public key is (n, e); the private key also holds d, p, q and the CRT values.
PKCS#1("RSA PRIVATE KEY")只保存 RSA 数值;PKCS#8("PRIVATE KEY")则用算法标识符把它们包装起来,是大多数现代库所需要的格式。SPKI("PUBLIC KEY")对公钥部分起同样的作用。
示例
请求 2048 位会得到恰好 2048 位的模数和指数 65537。它的 PKCS#8 PEM 以 -----BEGIN PRIVATE KEY----- 开头,同一把密钥的 PKCS#1 则以 -----BEGIN RSA PRIVATE KEY----- 开头。
常见问题
应该用多大的长度?
NIST SP 800-57 认为 2048 位 RSA 在 2030 年前可以接受,之后建议使用 3072 位。4096 位生成和使用都更慢,对大多数用途几乎没有实际收益。
私钥会被发送到哪里吗?
不会。生成和导出都在你的浏览器中进行,不会上传任何内容。对于长期使用的生产密钥,许多团队仍倾向于在可信的机器上用 openssl genpkey,或使用硬件安全模块。
以后如何在各种格式之间转换?
用 OpenSSL:openssl pkey -in key.pem -traditional 得到 PKCS#1,openssl pkey -in key.pem 得到 PKCS#8,openssl pkey -in key.pem -pubout 输出 SPKI 公钥。
资料来源
最后更新:
包含这些输入的页面地址: https://kakao.mobile/zh/tools/rsa-key-generator/
引用此工具
kakaoCalc. (2026, November 8). RSA 密钥对生成器(PEM、JWK、OpenSSH). https://kakao.mobile/zh/tools/rsa-key-generator/
“RSA 密钥对生成器(PEM、JWK、OpenSSH).” kakaoCalc, 8 Nov. 2026, kakao.mobile/zh/tools/rsa-key-generator/.