【发布时间】:2018-01-15 18:55:37
【问题描述】:
有什么方法可以知道 JSON Web Token 是否被篡改。比如body变了或者过期时间变了等等。
我已经尝试阅读 JWT 的 RFC,但该语言对我来说有点高级。
【问题讨论】:
标签: javascript json encryption jwt
有什么方法可以知道 JSON Web Token 是否被篡改。比如body变了或者过期时间变了等等。
我已经尝试阅读 JWT 的 RFC,但该语言对我来说有点高级。
【问题讨论】:
标签: javascript json encryption jwt
来自Wikipedia:
JWT 通常包含三个部分:标头、有效负载和签名。标头标识用于生成签名的算法,如下所示:
header = '{"alg":"HS256","typ":"JWT"}'
签名是通过base64url对header和payload进行编码,并用句点作为分隔符连接起来的:
总而言之,签名是 base64url 编码的。
所以...您获取令牌的签名,从 base64 解码,从标头中获取加密算法并为 base64 编码的标头 + '.' 生成签名+ base64 编码的有效载荷。如果你计算的签名和你收到的签名匹配,那么很可能没有人篡改 JWT。
【讨论】: