API接口签名验证
API接口分为开放接口和私密接口。
什么是开放接口?
只要别人申请到你的key和secrte就可以使用你的接口,例如支付宝,微信这些都是开放接口。
什么是私密接口?
我自己写的接口,只给我自己的APP使用,这就是私密接口,不给别人用。
我们一个一个介绍它们签名的验证,先介绍开放API接口。
下面我们称呼发布接口方为:API
使用接口方为:APP
1.开发APP的技术人员从开发API的人那里申请到key和secrte
2.APP将要传递的参数和对应值,例如:
arg1=value1,name=fdfd,age=12
按照参数名的字母前后顺序进行重新排序;
3.然后再将排序好的参数,加上secrte、加上当前时间戳timestamp,使用md5加密得到一个一个加密字符串;
4.现在就只需要将加密好的md5值、key、排序好的参数、时间戳传递到接口
接口方API:
1.先根据传递来的key来验证用户的合法性,同时得到这个用户对应的secrte
2.根据用户传递的参数和secrte以及时间戳ton同样进行md5加密
3.最后比对APP传递的md5值和我们自己计算的md5值是否相同
如果不正确的话说明参数被篡改,或者失效
私密接口:
私密接口就是省掉了验证key这一部分,当然也不需要传递key
直接在接口端和APP端约定好secrte就可以了。
可以看到整个过程,最重要的就是保护好那个secrte不要被泄漏,就可以保证数据传输的安全性