我如何知道 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 令牌是不是被篡改的主要内容,如果未能解决你的问题,请参考以下文章

如何防止网站被*** 防止网站数据被***篡改

监控web站点目录下所有文件是否被恶意篡改

wordpress如何防止url被篡改

怎样验证软件是否可信?是否被篡改?

如何修改被篡改的浏览器打开的首页

监控web站点目录下所有文件是否被恶意篡改