🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# 签名规则 **短说OSX**与开发者之间进行接口交互请求,都会包含签名参数,链接中签名参数的生成,都是通过MD5生成的签名参数,以确保请求安全。 ### 1.MD5签名原理 md5签名原理如下: 将请求参数和appSecret封装成Map集合,按照**参数名**(Key)进行升序排列,将排序后Map集合的参数值(value)拼装成字符串进行MD5签名。其中appSecret在签名中的顺序取决于他在所有参数名中的顺序。 例: `appKey:testappkey , appSecret:testsecret` 参数列表:`{appKey=testappkey,endtimestamp=1405495206}` 签名原串:`testappkeytestsecret1405495206` 签名后字符串:`fc89ad8645fe705f024edfc00c02aeee` 签名url示例:<http://(domain)?endtimestamp=1405495206&appKey=testappKey&sign=fc89ad8645fe705f024edfc00c02aeee> #### 注意: \> 1.签名验证时,如无特殊说明,必须遍历request请求中的所有参数进行签名验证。 > 短说向开发者发起的请求,也会带上签名,开发者可在提供的api中进行签名验证,确保请求来源可信。 ### 2.签名规则测试用例 为了方便开发者对签名方法进行测试验证,下面举例说明签名规则和签名方法。 1.以免登陆地址参数请求签名参数为例:url=" [http://osxfenew.demo.opensns.cn/#/autoLogin?&user\_token=14359234985&token=23453654fsdgjk&endtimestamp=1520559858&appKey=testappKey&sign=3fdde881d58af54792f2e3198244f3a2&redirect=https%3a%2f%2fosxfenew.demo.opensns.cn%2f%23%2fpackageA%2fforum-detail%2fnormal%3ffid%3d44](http://osxfenew.demo.opensns.cn/#/autoLogin?&user_token=14359234985&token=23453654fsdgjk&endtimestamp=1520559858&appKey=testappKey&sign=3fdde881d58af54792f2e3198244f3a2&redirect=https%3a%2f%2fosxfenew.demo.opensns.cn%2f%23%2fpackageA%2fforum-detail%2fnormal%3ffid%3d44) " 2.其中密钥appSecret的值为:appSecret=testappSecret。 3.获取请求链接中所有请求参数封装成Map集合 :{appKey=testappKey ; user\_token=14359234985(开发者平台用户唯一标识) ;token=23453654fsdgjk(请求单次有效唯一标识,开发者服务端在用户信息获取接口中校验请求合法性); endtimestamp=1520559858} ; 4.把appSecret加入参数列表集合后如下: { appKey=testappKey, appSecret=testappSecret, user\_token=14359234985 , endtimestamp=1520559858, token=23453654fsdgjk } 5.把Map集合按照**参数名升序**排序之后如下: { appKey=testappKey, appSecret=testappSecret, endtimestamp=1520559858 ,token=23453654fsdgjk, user\_token=14359234985 } 6.根据规则,把排序后参数列表的参数值拼装成签名源串如下: strs= testappKeytestappSecret152055985823453654fsdgjk14359234985 7.把上面拼装成的参数源串加密后获得的签名如下: sign=MD5(strs)= 3fdde881d58af54792f2e3198244f3a2 ##### 说明: \> OSX短说采用appKey、appSecret的键值对形式作为密钥对,而非采用单一secret的形式,主要是为了后续多应用模式留下入口。广大开发者们不必纠结 ## 签名验证工具 为方便开发同学理解签名规则,可以使用下面的短说OSX签名工具页面进行验证签名。地址如下:[签名校验工具](https://osxbe.demo.opensns.cn/commonapi/index/checkTokenSign)