簡體   English   中英

如何生成與JWT.IO網站相同的簽名?

[英]How to generate the same signature as the JWT.IO website does?

JWT.IO網站有一個用於創建和驗證JSON Web令牌的調試器。

當我將我的秘密字符串復制並粘貼到VERIFY SIGNATURE塊中時,我可以看到它生成一個簽名。

JWT.IO

我向下滾動頁面,發現Microsoft實現的.NET解決方案 下載后,我添加單元測試以手動生成簽名。

單元測試

但是,JWT.IO網站生成的簽名與我的單元測試生成的簽名略有不同。

Secrect string: "THIS IS A SECRET STRING WHICH CAN BE SHARED BETWEEN THE SERVICES"
Unit test signature: "B0d57pcHoDiTDE/98dyrMx9HoFKGLOcM094eYBgJqHo="
JWT.IO    signature:  B0d57pcHoDiTDE_98dyrMx9HoFKGLOcM094eYBgJqHo

我注意到JWT.IO簽名字符串是URL編碼安全的,但單元測試簽名不是。

如何生成與JWT.IO網站相同的簽名?

UPDATE

下面接受的答案將我指向Base64UrlEncoder 我修改了我的單元測試以生成與JWT.IO網站完全相同的簽名:

使用Base64UrlEncoder

@ Believe2014似乎jwt.io網站沒有一些選項來指定base64編碼,使用哪種URLEncoding生成與單元測試相同的簽名。

但是,根據RFC 4648的第4和第5節,兩個簽名之間的差異對於字節6263使用不同的字符以及是否省略填充字符=

因此,為了將jwt.io生成的簽名轉換為你的簽名,只需使用/而不是_ ,使用+而不是- ,並在簽名結束時添加填充符=

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM