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