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 橢圓曲線簽名(免費 · 純前端 · 資料不上傳)