我如何知道 json Web 令牌是不是被篡改
Posted
技术标签:
【中文标题】我如何知道 json Web 令牌是不是被篡改【英文标题】:how do i know if a json web token is tampered with or not我如何知道 json Web 令牌是否被篡改 【发布时间】:2018-01-15 18:55:37 【问题描述】:有什么方法可以知道 JSON Web Token 是否被篡改。比如body变了或者过期时间变了等等。
我已经尝试阅读 JWT 的 RFC,但该语言对我来说有点高级。
【问题讨论】:
【参考方案1】:来自Wikipedia:
JWT 通常包含三个部分:标头、有效负载和签名。标头标识用于生成签名的算法,如下所示:
header = '"alg":"HS256","typ":"JWT"'
签名是通过base64url对header和payload进行编码,并用句点作为分隔符连接起来的:
总而言之,签名是 base64url 编码的。
所以...您获取令牌的签名,从 base64 解码,从标头中获取加密算法并为 base64 编码的标头 + '.' 生成签名+ base64 编码的有效载荷。如果你计算的签名和你收到的签名匹配,那么很可能没有人篡改 JWT。
【讨论】:
以上是关于我如何知道 json Web 令牌是不是被篡改的主要内容,如果未能解决你的问题,请参考以下文章