开放平台对接使用数字签名技术
2018-03-09 23:17
260 查看
可参考淘宝开放平台思想
将排序好的参数名和参数值拼装在一起,根据上面的示例得到的结果为:bar2foo1foo_bar3foobar4。
把拼装好的字符串采用utf-8编码,使用签名算法对编码后的字节流进行摘要。如果使用MD5算法,则需要在拼装的字符串前后加上app的secret后,再进行摘要,如:md5(secret+bar2foo1foo_bar3foobar4+secret);如果使用HMAC_MD5算法,则需要用app的secret初始化摘要算法后,再进行摘要,如:hmac_md5(bar2foo1foo_bar3foobar4)。
将摘要得到的字节流结果使用十六进制表示,如:hex(“helloworld”.getBytes(“utf-8”)) = “68656C6C6F776F726C64”
说明:MD5和HMAC_MD5都是128位长度的摘要算法,用16进制表示,一个十六进制的字符能表示4个位,所以签名后的字符串长度固定为32个十六进制字符。
签名算法
为了防止API调用过程中被黑客恶意篡改,调用任何一个API都需要携带签名,TOP服务端会根据请求参数,对签名进行验证,签名不合法的请求将会被拒绝。TOP目前支持的签名算法有两种:MD5(sign_method=md5),HMAC_MD5(sign_method=hmac),签名大体过程如下:对所有API请求参数(包括公共参数和业务参数,但除去sign参数和byte[]类型的参数),根据参数名称的ASCII码表的顺序排序。如:foo:1, bar:2, foo_bar:3, foobar:4排序后的顺序是bar:2, foo:1, foo_bar:3, foobar:4。将排序好的参数名和参数值拼装在一起,根据上面的示例得到的结果为:bar2foo1foo_bar3foobar4。
把拼装好的字符串采用utf-8编码,使用签名算法对编码后的字节流进行摘要。如果使用MD5算法,则需要在拼装的字符串前后加上app的secret后,再进行摘要,如:md5(secret+bar2foo1foo_bar3foobar4+secret);如果使用HMAC_MD5算法,则需要用app的secret初始化摘要算法后,再进行摘要,如:hmac_md5(bar2foo1foo_bar3foobar4)。
将摘要得到的字节流结果使用十六进制表示,如:hex(“helloworld”.getBytes(“utf-8”)) = “68656C6C6F776F726C64”
说明:MD5和HMAC_MD5都是128位长度的摘要算法,用16进制表示,一个十六进制的字符能表示4个位,所以签名后的字符串长度固定为32个十六进制字符。
相关文章推荐
- 饿了么开放平台接入(2)——使用Java对接店铺
- 阿里.聚石塔.开放平台的使用
- 百度定制化图像开放平台使用--调用识别接口(python3代码)
- sina微博开放平台中使用OAuth验证并发表微博
- 天翼开放平台免费短信验证码接口使用实例
- 虚拟币交易平台对接钱包是使用 Merkle Tree端口
- 使用百度baidu开放搜索平台
- sina微博开放平台中使用OAuth验证并发表微博
- 阿里巴巴开放平台使用测试app
- sina微博开放平台中使用OAuth验证并发表微博 推荐
- IOS中使用到的常用的第三方开放平台
- 支付宝开放平台Android端使用方法
- 百度LBS开放平台Android SDK产品使用
- 使用爱奇艺开放平台上传视频
- 科大讯飞开放平台——语音听写接口的使用
- 使用OLAMI自然语言开放平台提供的API接口制作自己的语音助手
- 对接 亿美短信平台 总结(HttpClient的使用)
- APP百度、360、苹果市场推广网址及分享功能需使用的开放平台网址
- 天翼开放平台免费短信验证码接口使用实例
- 使用北邮人开放平台OAuth2.0心得