一文解决JWT相同签名不匹配问题【JWT signature does not match locally computed signature.】

这篇具有很好参考价值的文章主要介绍了一文解决JWT相同签名不匹配问题【JWT signature does not match locally computed signature.】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

        今天做项目的时候,涉及到一个支付记账的功能,想着不能将这些金额数据显示暴露的通过常规的请求体封装来进行传输,想着要是被中途抓包修改了不就麻烦了,所以考虑到这种安全性的需求,就利用上了JWT来进行数据的封装传递,避免了被中途抓包修改的情况。但是当和前端约定好密钥签名后,发现相同匹配的签名居然无法匹配?!代码如下:

前端代码:

const header = { alg: "HS256", typ: "JWT" };
// 设置JWT有效载荷
const payload = {
  uid: "wzx",
  point_amount: 100,
  pi_sum: 10,
  exp: Math.floor(Date.now() / 1000) + 600, // 过期时间(当前时间戳加1小时)
};
export function getJWTFun(alg, header, payload) {
  let token = KJUR.jws.JWS.sign(
    alg,
    JSON.stringify(header),
    JSON.stringify(payload),
    "pairuan"
  );

  return token;
}

后端代码:

public static Claims getUserIdFromToken(String token){
        JwtParser jwtParser = Jwts.parser();
        // 通过签名对Token进行解析,得到的结果是一个类似集合的封装类
        Jws<Claims> claimsJws = jwtParser.setSigningKey("pairuan").parseClaimsJws(token);
        return claimsJws.getBody();
    }

在上方的代码中可以发现,我俩的签名应该是可以匹配的才对,但是还是报了

        JWT signature does not match locally computed signature. JWT validity cannot be asserted and should

的异常。在确定令牌并未过期的基础上,通过几个小时的冲浪,终于找到一个合适的解决方案,那就是将令牌指定编码格式转换为一个byte数组,这样子就可以如愿匹配!!代码如下:

一文解决JWT相同签名不匹配问题【JWT signature does not match locally computed signature.】,异常、配置积累,java文章来源地址https://www.toymoban.com/news/detail-635368.html

到了这里,关于一文解决JWT相同签名不匹配问题【JWT signature does not match locally computed signature.】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Blind Signature盲签名与fabric区块链结合的应用

    盲签名的概念 首先由 David Chaum 于1982年提出,盲签名实现了签名者对发送者的消息进行签名,却不能知道签名者消息的具体内容。 相当于将文件放入信封,签名者在信封上对文件进行签名,而不知道具体的文件内容。 盲签名的实现方式 盲签名的实现方式有很多,比如基于

    2024年02月03日
    浏览(36)
  • 【Postman&JMeter】使用Postman和JMeter进行signature签名

    目录 使用Postman和JMeter进行signature签名 一、前言 二、v0接口 1.Postman 2.JMeter 三、v1接口 1.Postman 2.JMeter 四、v2接口 1.Postman 2.JMeter ​有些接口的请求会带上sign(签名)进行请求,各接口对sign的签名内容、方式可能不一样,但一般都是从接口的入参中选择部分内容组成一个字符串

    2024年02月04日
    浏览(42)
  • Android 给广播接收器增加权限(permission)或signature签名权限

    一. 普通权限 1.添加权限         当普通广播接收器需要增加权限时,需要在广播接收器所在的AndroidManifest.xml 文件中添加权限: 注:我查到的资料是 在广播接收器所在的AndroidManifest.xml 文件中添加permission 就行了,uses-permission是添加在广播发送方的,但在我实际调试中我发

    2024年02月07日
    浏览(63)
  • 记录一次调用奇门api报错信息Invalid signature (签名无效)

    奇门有msg对应错误的记录 我可能是 3.1   以下是还原场景 第一个方法 第二个方法 以下是运行结果 很奇怪----下第一个打印是正常的,而第二个出现 错误,我对map底层没有特别多的理解 第二个方法修正: 加入代码: 修改MapString,String参数名称为map 这样就正常了

    2024年02月22日
    浏览(50)
  • CSDN博客接口基于java调用的x-ca-signature签名算法研究

    本人业余时间会写写CSDN的博客,查看下博客数据,展现量、阅读量什么的。在“作品数据-单篇文章分析”菜单中可以看到每篇文章的总体展现量、阅读量,要是想看每篇文章每日的访问量需要再次点击列表后边的“查看详情”显示的曲线图,一个一个点击着实有些麻烦,所

    2024年02月10日
    浏览(41)
  • 从零开发短视频电商 使用nimbus-jose-jwt进行对称签名和非对称签名的JWT实现

    JWT的基础介绍可以参见这个地址:https://jwt.io/introduction,下面都是从上面摘录的。 JSON Web Token(JWT)是一种开放标准(RFC 7519),它定义了一种 紧凑且自包含 的方式,用于 安全地在各方之间传输信息 ,其格 式为JSON对象 。这些 信息可以被验证和信任 ,因为它们是 数字签名

    2024年02月12日
    浏览(44)
  • 【算法】【差分数组】解决连续空间改变相同值的问题

    将原数组每个值减去前一个值,得到的新数组是差分数组 d i s [ k ] = a [ k ] − a [ k − 1 ] dis[k] = a[k] - a[k-1] d i s [ k ] = a [ k ] − a [ k − 1 ] 如: 原数组为 [ 1 , 2 , 3 , 5 ] [1,2,3,5] [ 1 , 2 , 3 , 5 ] 得到的差分数组为 [ 1 , 1 , 1 , 2 ] [1,1,1,2] [ 1 , 1 , 1 , 2 ] 通过计算差分数组的前缀和,可以得

    2024年02月08日
    浏览(74)
  • echarts写3d圆环,并解决圆环数据相同时显示异常问题

    “echarts”: “^4.9.0”, “echarts-gl”: “^1.1.2”, 1.mixins.js文件: 2.pieChart.vue文件: netDefenseSituList:为传入的数据

    2024年02月03日
    浏览(42)
  • signature hdr data: BAD, no. of btyes(9088) out of range 问题排查与解决方案

    在使用yum工具安装gcc的时候,报出了 signature hdr data: BAD, no. of btyes(9088) out of range 的问题 这是由于centos8中rpm工具存在的一个bug,在校验安装包头部大小的时候,应当限制为64M,但是实际限制了64k 这个问题存在于 rpm-4.14.3-4.el8.x86_64 等版本 查看你本机的rpm版本可以使用命令 解决

    2024年03月09日
    浏览(61)
  • keycloak~jwt的rs256签名的验证方式

    keycloak开放接口地址:/auth/realms/fabao/.well-known/openid-configuration RSA算法是一种非对称加密算法,其安全性基于大整数分解的困难性。在RSA算法中,有以下几个关键参数: n(模数) :n 是一个大整数,通常为两个大素数 p 和 q 的乘积,即 n = p * q。n 用于生成公钥和私钥,并且决

    2024年04月22日
    浏览(61)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包