我如何知道json网络令牌是否被篡改

时间:2017-08-08 09:19:30

标签: javascript json encryption jwt

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

我已经尝试过阅读JWT的RFC,但语言对我来说有点高级。

1 个答案:

答案 0 :(得分:5)

来自Wikipedia

  

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

header = '{"alg":"HS256","typ":"JWT"}'
  

签名由base64url编码头和有效负载计算,并以句点作为分隔符连接:

     

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

所以...你获取令牌的签名,从base64解码它,从头部获取加密算法并生成base64编码头+''的签名。 + base64编码的有效负载。如果您计算的签名和您收到的签名匹配,则很可能没有人篡改JWT。