签名规则

优质
小牛编辑
138浏览
2023-12-01

签名规则

兑吧与开发者之间进行接口交互请求,都会包含签名参数,链接中签名参数的生成,都是通过MD5生成的签名参数,以确保请求安全。

1.MD5签名原理

兑吧签名md5签名原理如下:

将请求参数和appSecret封装成Map集合,按照参数名(Key)进行升序排列,将排序后Map集合的参数值(value)拼装成字符串进行MD5签名。其中appSecret在签名中的顺序取决于他在所有参数名中的顺序。

例:
appKey:testappkey , appSecret:testsecret

参数列表:{appKey=testappkey,timestamp=1405495206727}

签名原串:testappkeytestsecret1405495206727

签名后字符串:39e73663eb1caf2096968e680991ba2c

签名url示例:http://www.duiba.com.cn/autoLogin/autologin?appKey=testappkey&timestamp=129832323&sign=39e73663eb1caf2096968e680991ba2c

注意:

1.签名验证时,必须遍历request请求中的所有参数进行签名验证。
兑吧向开发者发起的请求,未来有可能会添加业务参数,开发者在验证请求时,务必对所有参数进行遍历,全部加入签名验证数据中。

2.开发者切勿写死签名验证参数,未来兑吧升级参数变更将导致开发者服务不可用,请谨慎。

2.签名规则测试用例

为了方便开发者对签名方法进行测试验证,下面举例说明签名规则和签名方法。

1.以免登陆地址参数请求签名参数为例:url=" http://www.duiba.com.cn/autoLogin/autologin?sign=49b12bc5579a2a2a4652a68cd53c1e5e&uid=test&appKey=testappKey&credits=100&timestamp=1520559858580&"

2.其中密钥appSecret的值为:appSecret=testappSecret。

3.获取请求链接中所有请求参数封装成Map集合 :{appKey=testappKey ; uid=test ; credits=100 ; timestamp=1520559858580} ;

4.把appSecret加入参数列表集合后如下:

{ appKey=testappKey, appSecret=testappSecret, uid=test , credits=100 , timestamp=1520559858580 }

5.把Map集合按照参数名升序排序之后如下:

{ appKey=testappKey, appSecret=testappSecret, credits=100 , timestamp=1520559858580 , uid=test }

6.根据规则,把排序后参数列表的参数值拼装成签名源串如下:

strs= testappKeytestappSecret1001520559858580test

7.把上面拼装成的参数源串加密后获得的签名如下:

sign=MD5(strs)= 49b12bc5579a2a2a4652a68cd53c1e5e

签名验证工具

为方便开发同学理解签名规则,可以使用下面的兑吧签名工具页面进行验证签名。地址如下:http://wechat.duiba.com.cn/dbsign