我正在努力了解 Golang 中的 JWT 令牌。我正在使用github.com/dgrijalva/jwt-go。讓我措手不及的是我可以輸入多個有效簽名。例如,前往http://jwt.io - 輸入 MySuperSecretKey 作為秘密此令牌有效:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE0NTc3MzAyODMsInVzZXIiOiJ1c2VyMSJ9.SxshVL42DUH9e7jXUblbB_bTwKxhe4jo70Drvb還有這個:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE0NTc3MzAyODMsInVzZXIiOiJ1c2VyMSJ9.SxshVL42DUH9e7jXUblbB_bTwKxhe4jo70Drvb事實上,如果我將最后一個字母更改為 V、W 或 X,我會收到“簽名驗證”消息。誰能告訴我這里發(fā)生了什么?
1 回答

德瑪西亞99
TA貢獻1770條經(jīng)驗 獲得超3個贊
它是簽名的 Base64 編碼,可以將最后一個字母更改為某些目標(biāo),而不會影響相關(guān)位。
嘗試將兩個簽名都彈出到 base64->hex 解碼器中,您將獲得相同的結(jié)果。事實上,在https://conv.darkbyte.ru/兩個簽名都被重新評估為 base64 SxshVL42DUH9e7jXUblbBbTwKxhe4jo70DrvbQMlaQ==
- 1 回答
- 0 關(guān)注
- 264 瀏覽
添加回答
舉報
0/150
提交
取消