ECDSA 与 Ed25519 密钥生成器
在浏览器中生成 ECDSA(P-256/P-384)或 Ed25519 密钥对,并对消息签名或验签,可导出为 PEM 或 JWK。
正在加载工具…
ECDSA 与 Ed25519 密钥生成器 — 创建一个椭圆曲线密钥对,用私钥对消息签名,再用公钥验证签名,全程不离开本页。可选择 P-256、P-384 或 Ed25519,将密钥导出为 PEM 或 JWK,并实时查看验签结果。每个密钥都通过 Web Crypto API 和 @noble/curves 在本地生成,私钥绝不会接触服务器。
ECDSA 与 Ed25519 密钥生成器 是什么?
ECDSA 与 Ed25519 密钥生成器是一款免费的浏览器内工具,用于生成椭圆曲线密钥对并演练数字签名。开发者、安全工程师和学生用它来测试签名与验签流程、为 JWT 或类 SSH 工作流生成密钥,以及在不安装 OpenSSL 的情况下理解 ECDSA 与 EdDSA 的区别。先在「曲线」菜单中选择曲线,点击「生成密钥」获得新的密钥对,再以 PEM 或 JWK 形式复制公钥和私钥。然后输入一段消息,点击「签名」生成 Base64 签名,工具会自动用公钥进行验证并显示签名是否有效。P-256 和 P-384 由浏览器原生的 Web Crypto ECDSA 处理,而 Ed25519 则由仅在选中时才加载的 @noble/curves 库计算。
如何使用 ECDSA 与 Ed25519 密钥生成器
- 在「曲线」菜单中选择曲线:P-256 或 P-384(通过 Web Crypto 的 ECDSA),或 Ed25519(EdDSA)。
- 选择密钥的导出格式:PEM 或 JWK。
- 点击「生成密钥」生成一个全新的随机密钥对,公钥和私钥会显示在下方。
- 用复制按钮复制公钥或私钥,以便在别处使用。
- 输入一段消息并点击「签名」生成 Base64 签名。
- 查看验签结果:工具会自动用公钥核对签名,并告诉你它是否有效。
示例
生成 P-256 PEM 密钥对
输入
曲线:P-256,格式:PEM,点击「生成密钥」
输出
-----BEGIN PUBLIC KEY----- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcD... -----END PUBLIC KEY-----
用 Ed25519 签名并验证消息
输入
曲线:Ed25519,消息:"hello noble",点击「签名」
输出
签名(Base64):3Lq8...== —— 验签结果:签名有效。
将 Ed25519 公钥导出为 JWK
输入
曲线:Ed25519,格式:JWK
输出
{ "kty": "OKP", "crv": "Ed25519", "x": "11qYAYK..." }常见问题
- 私钥会被发送到任何地方吗?
- 不会。密钥生成、签名和验签都使用 Web Crypto API(P-256/P-384)和 @noble/curves 库(Ed25519)在你的浏览器中本地运行。私钥仅保存在本页的内存中,绝不会上传,关闭标签页时即消失,因此该工具可离线使用。
- ECDSA 和 Ed25519 有什么区别?
- 基于 P-256/P-384 的 ECDSA 是历史悠久的 NIST 标准,被 TLS 证书和许多 JWT 使用。Ed25519 是一种现代的 EdDSA 方案,更快、签名长度固定,并避免了 ECDSA 的若干隐患。请按目标系统的要求选择。
- PEM 和 JWK 是什么意思?
- PEM 将二进制密钥包装成带 BEGIN/END 头的 Base64 文本块,是 OpenSSL 和大多数服务器期望的形式。JWK 是描述密钥的 JSON 对象,常见于 Web 和 OAuth/JWT 场景。生成前切换格式即可得到所需的编码。
- 签名是如何编码的?
- 签名以 Base64 显示。对于 ECDSA,它是 Web Crypto 生成的原始 r||s 值;对于 Ed25519,它是 64 字节的 EdDSA 签名。你也可以把 Base64 签名粘贴回该字段,用生成的公钥进行验证。
- 我能验证在别处创建的签名吗?
- 你可以针对这里生成的密钥对进行验证:粘贴消息和一段 Base64 签名,工具会用配套的公钥核对。本工具不支持导入外部密钥对。