选「不可导出」时浏览器会拒绝导出私钥,安全性更高,但也拿不到 PEM。
「安全强度」是对称密钥的等效位数,越高越难破解。
| 算法 | 用途 | 安全强度 | 密钥长度 | 特点 |
|---|---|---|---|---|
| RSA-OAEP | 加密 | 2048→112 / 3072→128 | 256 / 384 字节公钥 | 兼容性最好,老系统都在用 |
| RSA-PSS | 签名 | 2048→112 / 3072→128 | 同上 | 带随机盐的签名,比 PKCS#1 v1.5 安全 |
| ECDSA P-256 | 签名 | 128 | 公钥仅 91 字节 | 首选:短、快、强度够 |
| ECDSA P-384 | 签名 | 192 | 公钥 120 字节 | 需要更高强度时选它 |
| ECDSA P-521 | 签名 | 256 | 公钥 158 字节 | 最高强度,性能略慢 |
| ECDH P-256 | 密钥协商 | 128 | 公钥 91 字节 | TLS、端到端加密的协商环节 |
| RSA 1024 | — | 80 | 128 字节公钥 | 已不安全,禁止使用 |
⚠️ 使用提示:① 本工具生成的密钥用于学习、测试、演示场景是合适的;用于生产系统、证书签发、资金相关业务时,请在受控环境(离线机 / HSM / KMS)中用专业工具生成;② 私钥一旦离开你的浏览器就不可控——复制、下载、粘贴任何一步都可能留下副本,请谨慎;③ 浏览器生成的密钥没有口令保护,PEM 文件是明文私钥,谁拿到文件谁就能用;④ RSA-4096 生成可能要几秒甚至十几秒,期间页面会卡住一下,属正常现象;⑤ 本工具不做证书签发(X.509)、不做密钥格式转换(OpenSSH / JWK)、不做签名验签操作。
配 SSH、调 JWT、做接口签名、搭测试环境——这些场景的第一步都是「先有一对公私钥」。
过去你要装 OpenSSL 再敲一串记不住的命令;现在可以直接在浏览器里生成:
① 四种算法:RSA-OAEP(加密)、RSA-PSS(签名)、ECDSA(签名)、ECDH(密钥协商);
② 多种强度:RSA 2048 / 3072 / 4096,ECC P-256 / P-384 / P-521;
③ 标准格式:私钥导出 PKCS#8 PEM,公钥导出 SPKI PEM,这俩格式 OpenSSL、Java、Go、Node 都能直接读;
④ 公钥指纹:对公钥做 SHA-256,方便你核对「这把公钥是不是那把」;
⑤ 可选不可导出:勾选后浏览器会拒绝导出私钥,适合只想验证「能不能生成」的场景。
密钥在你自己的浏览器里生成,用的是浏览器内置的随机数发生器,私钥不上传、不记录,刷新就没了。
怎么实现:
① 生成:`crypto.subtle.generateKey()`。RSA 传 `{ modulusLength, publicExponent: 65537, hash }`,ECC 传 `{ namedCurve }`,第三个参数是「私钥是否可导出」;
② 导出:`exportKey('pkcs8', 私钥)` 拿到 DER 字节,`exportKey('spki', 公钥)` 同理,再包成 PEM(Base64 每 64 字符换行,加 `-----BEGIN …-----` 头尾);
③ 指纹:对公钥的 DER 字节做 `digest('SHA-256')`,输出冒号分隔的十六进制,等价于 `openssl pkey -pubin -outform DER | openssl dgst -sha256`;
④ 用途区分:RSA-OAEP 用于加解密(keyUsages `encrypt/decrypt`),RSA-PSS / ECDSA 用于签名(`sign/verify`),ECDH 用于密钥协商(`deriveBits/deriveKey`)——用途不能混用,一把 ECDSA 密钥拿去加密会被浏览器拒绝;
⑤ 安全强度:RSA-2048 ≈ 112 位,RSA-3072 ≈ 128 位,P-256 ≈ 128 位,P-384 ≈ 192 位,P-521 ≈ 256 位。ECC 用更短的密钥达到同等强度,所以现在新系统都优先选 ECC。
它不做:不做签名 / 验签 / 加解密操作(只生成),不做 X.509 证书,不做 JWK / OpenSSH 格式转换。
generateKey / exportKey)生成 RSA-OAEP(2048/3072/4096)、RSA-PSS(2048/3072)、ECDSA 与 ECDH(P-256/P-384/P-521)密钥对;私钥导出 PKCS#8 PEM、公钥导出 SPKI PEM(Base64 每 64 字符换行),附安全强度、生成耗时、公钥长度与 SHA-256 公钥指纹;支持复制、下载与「私钥不可导出」开关。非安全上下文给出明确引导。纯本地零依赖,适配黑夜模式。
审核通过后就会展示在留言板上,稍安勿躁~
还没有留言,来抢沙发吧!