RSA 密钥对生成器

浏览器本地生成 2048/4096 位 RSA 密钥对,输出标准 PEM,可下载保存。

接第三方回调要配 RSA 公钥,Git/SSH 要新密钥对,JWT 改 RS256 需要一对测试密钥——密钥生成的正规做法是本地命令行(openssl genrsa),但对不常做这件事的人来说,命令参数本身就是门槛。本工具用浏览器原生的 WebCrypto 在本地生成密钥对:2048 或 4096 位,加密用途(RSA-OAEP)或签名用途(RSA-PSS)。

输出是两个标准 PEM:公钥 SPKI 格式(-----BEGIN PUBLIC KEY-----),私钥 PKCS#8 格式(-----BEGIN PRIVATE KEY-----),与 openssl、JWT 库、SSH 工具链直接兼容,可下载为 .pem 文件。生成全程在浏览器内存中完成,没有任何上传。

密钥长度怎么选

2048 位是当前的行业底线(NIST 建议到 2030 年),生成约一秒;4096 位提供更长安全边际,生成可能要十秒以上,签名验证也更慢。内部测试用 2048 足够;对外长期服务建议 4096 或考虑迁移到 Ed25519 一类现代算法。

OAEP 与 PSS:同名算法的两种用法

RSA 本体只能对「与大数运算」打交道,实际使用必须套填充方案:加密用 OAEP(最优非对称加密填充),签名用 PSS(概率签名方案)。同一对密钥理论上可用于两者,但最佳实践是一对密钥只干一件事——工具在生成时就让你声明用途,避免混用。

常见问题

生成的密钥安全吗?会不会被本站看到?
密钥由浏览器内置的 WebCrypto 生成,页面无法读取其随机源,生成后只存在于页面内存中,没有任何上传逻辑。安全性等价于在本机跑 openssl。
这个密钥能用于 SSH 吗?
PKCS#8 格式的私钥可被 ssh-keygen 转换(ssh-keygen -i -f private.pem -m PKCS8),但 SSH 惯例是带注释的 OpenSSH 格式,建议 SSH 场景仍用 ssh-keygen 生成。
私钥忘了保存怎么办?
刷新即失效,重新生成即可——页面不保留任何副本。这也意味着:下载私钥这件事必须在离开页面前完成。

相关工具