body签名json序列号乱序,null参数问题

本文讨论了在对接接口时遇到的签名算法问题,包括post请求中参数为null导致签名失败及body乱序影响签名。解决方案是编码时包含null字段,并对body参数进行排序。这样做是因为服务端可能按不同顺序解析参数,导致编码结果不同,从而影响签名的一致性。
摘要由CSDN通过智能技术生成

 最近在对接某接口时,签名算法要求对post 请求参数进行编码,然后作为签名参数。

问题:

1.当post请求,body多个参数时,存在参数为null,导致签名失败

2.body乱序,导致签名失败问题

原因:

1.签名的时候需要对body进行编码,在body字段排序时,json序列化默认过滤掉为null的字段,

导致客户端编码没有为null字段,传给服务端的请求参数,编码时包含为null参数,导致签名参数不一致。处理方案:加签,编码时,为null字段也进行编码。代码如上图reqBody1的处理。

2.为什么要对body进行排序

想了一下场景,应该是传给服务端的body,可能与客服端编码body具体参数排序不一致,导致编码结果不同,如上图:reqBody 原始参数,s1为未排序的参数,reqBody1为排序后的参数。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值