java json 加密_对json字符串签名加密,从流中来的字符串和postman上的看起来一样,但是签名加密结果不一样,为什么?...

我调用自己写的一个接口,传入的json字符串如下图所示:

c251f21e345497163dbaab16b8d3ab00.png

{

"mobileNumber":"+84883232131",

"idNumber":"12121233"

}

我复制这个字符串,在在线HMAC-SHA1 generator网站(https://www.freeformatter.com...,对其用一个timestamp(1569327938875)做key进行签名加密,得到的结果

58782ff20de5d527c0951f97c36ce40a346c8d60

content-type是 application/json; charset=utf-8

在服务器java程序上,我通过如下获得bodyStr

byte[] body = StreamUtil.readBytes(request.getReader(), "UTF-8");

String bodyStr = new String(body)

e84f6ea82018794e0e70a9c9952428cc.png

但是调试窗口看到,程序中对bodyStr用timestamp(1569327938875)签名加密结果是tmp(b024eab123fffdcac5fae23e438de4cfbedeed63),我copy bodyStr的value放到

MDUtil.getHmacSHA1String("{ \t\"mobileNumber\":\"+84883232131\", \t\"idNumber\":\"12121233\" }", ts)

结果是110f7161be08e239ef1f5c5026cc99c35a3f7430

总之就是三个结果,我知道字符串之间的格式可能不同,但是具体原因究竟是什么呢?

我用这个签名加密方法,如何让api调用者能够在正确的json string上进行签名加密呢?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值