我正试图了解 Golang 中的 JWT 令牌。我正在使用github.com/dgrijalva/jwt-go。
让我措手不及的是我可以输入多个有效签名。
例如,前往http://jwt.io - 输入 MySuperSecretKey 作为密钥
此令牌有效:
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE0NTc3MzAyODMsInVzZXIiOiJ1c2VyMSJ9.SxshVL42DUH9e7jXUblbB_bTwKxhe4jo70DrvbQMlaU
以及这个:
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE0NTc3MzAyODMsInVzZXIiOiJ1c2VyMSJ9.SxshVL42DUH9e7jXUblbB_bTwKxhe4jo70DrvbQMlaV
事实上,如果我将最后一个字母更改为 V、W 或 X,我会收到“签名已验证”消息。
谁能告诉我这里发生了什么?