使用 ES256 的 OpenSSL 數位簽名

使用 ES256 的 OpenSSL 數位簽名

我正在嘗試重現 JSON Web 令牌的有效簽名。

我用以下方法製作私鑰:openssl ecparam -genkey -name prime256v1 -noout -out private.pem 也可以使用以下命令將其從 Pem 轉換為 P8:openssl pkcs8 -topk8 -nocrypt -in private.pem -out privateKey.p8

未簽署的Token,即Base64Url中的header和payload。

如果我用以下方式簽名: openssl dgst -sha256 -sign -privateKey.p8 -out 簽章.sha256 unsignedToken.txt然後將其設為 Base64,如下所示:openssl base64 -in 簽章.sha256

我沒有得到有效簽名,而且有效簽名必須是 86 個字元。就我而言,我有 96 個字符,每個簽名都以“ME”開頭。

相關內容