猿问

新手上路,API参数如何进行摘要签名验证的?谢谢哈~

假设A开发了一系列API,要求调用这些API的调用者对调用参数进行签名,然后A在后台对每个请求的签名进行验证。
假设B要调用这些API,首先需要将参数序列化为json,然后对jsonstring进行md5算法运算,得到签名sig
A收到B调用api的request,取出参数,记性呢md5运算,然后和sig对比。但是A取出的参数jsonstring需要和B当时得到的一致。
可是由于json序列化可能导致json各kv对的顺序变化,这种一致性就难以保证。
另一种方法是从request请求中将字节读出来,直接用md5对字节流进行运算处理。不过这样的话,一般这个动作发生在interceptor中,字节读出来后怎么放回去让接下来的Controller读到参数呢?这又是问题。
HUX布斯
浏览 222回答 2
2回答

尚方宝剑之说

1、一般是根据参数名称的ASCII码表的顺序排序,将排序好的参数名和参数值拼装在一起,然后使用MD5或者HMAC算法来签名sign2、字节读出来后怎么放回去?-->如果是使用springmvc的话,用ContentCachingRequestWrapper就可以
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答