UTILS.
100% 浏览器内运行
🗝️

RSA / EC 密钥对生成器(PEM 导出)

用 WebCrypto 在你的浏览器中生成 RSA 或 EC 密钥对,并将公钥和私钥导出为 PEM 或 JWK。密钥绝不离开你的设备。

密钥在你的浏览器本地生成——私钥绝不上传。

— 输出将显示在这里 —
— 输出将显示在这里 —

关于此工具

RSA / EC 密钥对生成器使用原生 WebCrypto API(crypto.subtle.generateKey)完全在你的浏览器中创建非对称密钥对,然后将其导出为你实际粘贴进配置文件和代码的格式。不向服务器传输或存储任何内容:私钥在你的设备上生成、显示一次,并在你离开页面时丢弃。这使它成为为 SSH 相关工具、JWT 签名、TLS 实验或学习公钥格式如何组合而铸造密钥的安全方式。

对于 RSA,你选择 2048、3072 或 4096 位的模数长度,使用标准公钥指数 65537,并选择密钥用于签名(RSASSA-PKCS1-v1_5,SHA-256)还是加密(RSA-OAEP,SHA-256)。对于椭圆曲线密钥,你选择一条 NIST 曲线——P-256、P-384 或 P-521——以及它用于签名(ECDSA)还是密钥协商(ECDH)。更大的 RSA 模数和更高的曲线更强但生成更慢;尤其 RSA-4096 在浏览器内可能需要几秒。

导出通过 WebCrypto 的 exportKey 完成:公钥为 SubjectPublicKeyInfo(SPKI),私钥为 PKCS#8,base64 编码并在 -----BEGIN PUBLIC KEY----- / -----BEGIN PRIVATE KEY----- 框内每行换行至 64 个字符。将格式切换开关切到 JWK 可改为获得 JSON Web Key 表示。由于生成在本地且离线,私钥绝不上传——在关闭标签页之前将其复制到安全的地方,因为之后无法恢复。

常见问题

私钥会发送到服务器吗?
不会。密钥由你浏览器的 WebCrypto 引擎在本地生成并在页内导出。私钥绝不离开你的设备且不存储在任何地方,因此请在关闭标签页之前将其复制到安全的地方——之后无法恢复。
我应该选择哪种密钥大小或曲线?
RSA-2048 是常见基线;3072 或 4096 以更慢的生成和更大的密钥换取更大的余量。对于 EC,P-256 快速且广泛支持,而 P-384 和 P-521 提供更高的安全等级。在同等强度下,EC 密钥比 RSA 小得多。
PEM 和 JWK 输出有什么区别?
PEM 是包裹在 BEGIN/END 行内的 base64 DER 格式,多数服务器和 OpenSSL 都期望它——公钥用 SPKI,私钥用 PKCS#8。JWK 是 JavaScript 和 JOSE/JWT 库使用的 JSON Web Key 对象。两者描述同一个密钥对。
签名与加密——有什么变化?
它选择密钥为之创建的算法。RSA 签名使用 RSASSA-PKCS1-v1_5,加密使用 RSA-OAEP;EC 签名使用 ECDSA,密钥协商使用 ECDH。为某一用途生成的密钥绑定到该算法,因此请根据你将如何使用它来选择。

更多工具