毒APP主要使用sign
和newSign
两个参数来对url进行验签,下面是首页推荐接口的请求:
GET https://app.poizon.com/api/v1/app/index/ice/shopping?lastId=&limit=20&newSign=3b799d62162b6ce9101f2b4eecee2e46](https://app.poizon.com/api/v1/app/index/ice/shopping?lastId=&limit=20&newSign=3b799d62162b6ce9101f2b4eecee2e46 HTTP/1.1
duuuid: 124ed23e39b48f13
duimei: 869437022872919
duplatform: android
appId: duapp
duchannel: du
duv: 4.16.1
duloginToken: c651c053|71979198|c1d97f25f2e7b844
dudeviceTrait: 2014813
timestamp: 1573811922502
shumeiid: 201911060919363513942e835afe4a655e595011a6c1f2018cae614d9493b0
User-Agent: duapp/4.16.1(android;5.1.1)
Host: app.poizon.com
Connection: Keep-Alive
Accept-Encoding: gzip
Cookie: duToken=d41d8cd9%7C71979198%7C1573801295%7C82764f7dbf13b384
sign
的计算方法如下:
- 把 url中的参数放入map中
- 把
uuid、platform、v、loginToken
放入map中 - 对map中的元素按key进行排序
- 把map中的元素按keyvalue形式拼接成字符串
- 在字符串末尾拼接一个常量字符串
- 计算字符串的md5
newSign
的计算方法跟sign
比较相似,只是最后是先对构建的字符串AES加密,然后再计算md5,加密部分是在libJNIEncrypt.so
中实现。
毒APP API的签名参数计算流程就这样,对细节感兴趣的朋友可以联系1420849833一起交流学习