我怎么知道json网络令牌是否被篡改

Aja*_*pta 2 javascript encryption json jwt

有没有办法知道JSON Web令牌是否被篡改。例如,更改了正文或更改了到期时间等。

我已经尝试阅读JWT的RFC,但对我而言,该语言有点高。

ytg*_*ytg 5

从维基百科:

JWT通常包含三部分:标头,有效负载和签名。标头标识了用于生成签名的算法,如下所示:

header = '{"alg":"HS256","typ":"JWT"}'
Run Code Online (Sandbox Code Playgroud)

签名是通过base64url对报头和有效负载进行编码并以句点作为分隔符将它们连接起来来计算的:

总而言之,签名是base64url编码的。

所以...您将获得令牌的签名,从base64对其进行解码,从标头中获取加密算法,并为base64编码的标头+'生成签名。+ base64编码的有效负载。如果您计算的签名与收到的签名匹配,那么很可能没人会篡改JWT。