有没有办法知道JSON Web令牌是否被篡改。例如,更改了正文或更改了到期时间等。
我已经尝试过阅读JWT的RFC,但语言对我来说有点高级。
答案 0 :(得分:5)
来自Wikipedia:
JWT通常有三个部分:标题,有效负载和签名。标题标识用于生成签名的算法,如下所示:
header = '{"alg":"HS256","typ":"JWT"}'
签名由base64url编码头和有效负载计算,并以句点作为分隔符连接:
总而言之,签名是base64url编码。
所以...你获取令牌的签名,从base64解码它,从头部获取加密算法并生成base64编码头+''的签名。 + base64编码的有效负载。如果您计算的签名和您收到的签名匹配,则很可能没有人篡改JWT。