ECDSA 椭圆曲线签名 使用指南

以 secp256k1 为例,私钥 d 生成公钥 Q=d·G;对消息哈希 e 用随机数 k 产出签名 (r,s),验证用公钥与 G。…

核心功能

适用场景

使用步骤

  1. 选择曲线(P-256 对应 JWT 的 ES256,P-384 对应 ES384)
  2. 点生成密钥对,保存私钥;公钥可公开分发给验签方
  3. 选择摘要算法,一般与曲线配对:P-256 配 SHA-256、P-384 配 SHA-384
  4. 输入待签名消息(如 JWT 的 header.payload),点签名得到签名值
  5. 把公钥与签名值交给对方验签;验签失败先查 alg 与摘要算法是否一致

实用技巧

常见问题

ECDSA 为何比 RSA 短?
256 位椭圆曲线安全性≈3072 位 RSA,密钥更短。
为什么每次签名结果都不一样?
ECDSA 签名依赖一个随机数 k,同一消息两次签名会得到不同但都有效的签名,这是正常且必要的设计——若 k 重复或可预测,攻击者可直接反推私钥(2010 年索尼 PS3 被攻破正是因此)。必须使用符合规范的随机源。
→ 去使用 ECDSA 椭圆曲线签名(免费 · 纯前端 · 数据不上传)