跳转到正文

EC 密钥生成器

生成用于 ES256、ES384 或 ES512 签名、ECDH 和 TLS 证书的椭圆曲线密钥对,可选择 P-256、P-384 或 P-521。结果包含未加密的 PKCS #8 PEM 私钥、SPKI PEM 公钥、带有 SHA-256 指纹的 OpenSSH ecdsa-sha2 公钥行,以及 RFC 7638 JWK 指纹。每对密钥都通过 Node 的 crypto 模块全新生成,绝不存储。

重置

常见问题

应该选择哪条曲线?

P-256(也称为 prime256v1 或 secp256r1)是支持最广泛的曲线,提供约 128 位安全性。P-384 提供约 192 位安全性,一些政府配置文件(如 CNSA)要求使用该曲线。P-521 是最大的 NIST 曲线,支持较少,因此只有系统要求时才选择它。

每条曲线对应哪种 JWT 算法?

P-256 密钥用于签署 ES256,P-384 密钥用于签署 ES384,P-521 密钥用于签署 ES512。JOSE 将每种算法与唯一一条曲线绑定,因此 JWT Generator 会拒绝使用曲线不匹配的密钥。结果中会列出与你的密钥匹配的算法。

会返回哪些格式?

私钥为 PEM 编码的 PKCS #8 格式(BEGIN PRIVATE KEY),公钥为带有命名曲线的 PEM 编码 SubjectPublicKeyInfo 格式(BEGIN PUBLIC KEY)。你还会获得 OpenSSH 在 authorized_keys 中所需的 ecdsa-sha2-nistp256、nistp384 或 nistp521 行。

如何获取 SEC1 格式(BEGIN EC PRIVATE KEY)?

有些工具仍需要较旧的 SEC1 编码。使用 OpenSSL 3 运行 openssl pkey -in key.pem -traditional -out key-ec.pem,或 openssl ec -in key.pem -out key-ec.pem。密钥本身保持不变。

我可以使用此密钥创建证书签名请求吗?

可以。保存私钥 PEM 并运行 openssl req -new -key key.pem -subj "/CN=example.com" -out request.csr,然后使用 CSR Decoder 检查请求。证书颁发机构接受用于 TLS 证书的 P-256 和 P-384 密钥。

为什么 EC 密钥比 RSA 密钥小?

椭圆曲线密码学用短得多的密钥即可达到相同的安全性,因此 P-256 密钥的安全性相当于 3072 位 RSA。签名更短,签署速度也更快。P-256 公钥仅占 65 字节。

私钥是否受口令短语保护?

不,私钥会以未加密形式返回,方便其他工具直接读取。请运行 openssl pkey -in key.pem -aes256 -out key-encrypted.pem 对其加密后再存储。切勿将未加密的私钥提交到代码库。

JWK 指纹有什么用途?

RFC 7638 指纹是对密钥的 crv、kty、x 和 y 成员进行 SHA-256 哈希后得到的 base64url 值。它是稳定的密钥标识符,不受 PEM 或 JWK 格式影响,适合作为 JWT 标头和 JWKS 文档中的 kid 值。

密钥对会被存储吗?

不会。密钥对会根据你的请求在内存中生成,只返回一次,且绝不会记录或保存。离开页面前请复制两把密钥,因为之后无法再次查看。

注释字段会更改什么?

它只会在 OpenSSH 公钥行末尾添加标签,例如 user@laptop,方便你在 authorized_keys 中识别密钥。指纹和密钥材料都保持不变。注释最多可包含 200 个字符。

关于 OneClick Pro

OneClick Pro 是一个免费的工具集合,包含超过 150 种网络工具,助你处理日常工作:转换图像和单位、格式化和验证代码、检查域名和 SEO,以及处理文本、日期和数字。所有工具均可免注册、免订阅使用;你输入的内容仅用于计算结果,绝不会被存储。你可以将它用作处理临时任务的快捷工具箱,也可以收藏每天都会用到的工具。