web应用接口开发参数签名方式(二)
2015-11-27 08:49
253 查看
之前写过一篇文章《web应用接口开发参数签名方式(一)》(网址:http://www.oicto.com/web-api-sign-key-a/),介绍了一种签名方式。这里再给介绍一种签名方式,是我在工作中与各平台商(有去哪网、远帆票务、天时同城等)合作过程中,通过综合整合,提炼出来的一种方式:
接口通信方式
平台与合作伙伴平台通过CURL(post)方式进行数据的交互。传输数据统一采用utf-8的编码方式进行编码。如果编码不一致,将会导致签名等错误。
数据安全
发送方发送请求时使用事先商定的密钥用3DES对消息内容加密然后用Base64编码。接收方收到后先用Base64解密然后用3DES解密得到消息体明文。在消息头中用对消息进行签名,防止消息内容在传输途中被篡改。
消息序列号:由8位随机字符够成。
时间戳格式:yyyyMMddHHmmss
消息签名规则: MD5(组织机构代码+消息序列号+请求时间戳TimeStamp +accesskey)
数据加密规则:Base64(3DES(参数数据))
消息格式
请求报文中请求数据格式:在请求报文中的请求数据为加密后的数据内容,解开后为完整的Json格式数据。
请求数据格式如下:
响应报文中响应数据格式:响应报文中的响应数据为加密后的的字符串,解开是完整的Json格式数据,Json中的Head节点下含有一个status键为响应状态,状态码与最后一页的码一至。
响应数据格式如下:
接口通信方式
平台与合作伙伴平台通过CURL(post)方式进行数据的交互。传输数据统一采用utf-8的编码方式进行编码。如果编码不一致,将会导致签名等错误。
数据安全
发送方发送请求时使用事先商定的密钥用3DES对消息内容加密然后用Base64编码。接收方收到后先用Base64解密然后用3DES解密得到消息体明文。在消息头中用对消息进行签名,防止消息内容在传输途中被篡改。
消息序列号:由8位随机字符够成。
时间戳格式:yyyyMMddHHmmss
消息签名规则: MD5(组织机构代码+消息序列号+请求时间戳TimeStamp +accesskey)
数据加密规则:Base64(3DES(参数数据))
消息格式
请求报文中请求数据格式:在请求报文中的请求数据为加密后的数据内容,解开后为完整的Json格式数据。
请求数据格式如下:
1234567891011 | Base64(3des({"Head":{"SequenceId":"消息序列号","sign":"消息签名","TimeStamp":"时间戳","organization":"组织机构代码"},"Body":{消息体}})) |
响应数据格式如下:
1 2 3 4 5 6 7 8 9 10 | Base64(3des( { "Head":{ "result":"200" "TimeStamp":"时间戳" }, "Body":{ 消息体见下 } })) |
相关文章推荐
- JDBC连接数据库实现删除功能
- JAVA环境配置
- 第十二周项目3——图的遍历(1)-深度优先
- 周末我要去跑步
- 导库中的一个表
- web应用接口开发参数签名方式(一)
- win10无法启动安全中心该怎么办?
- 第十二周项目3图遍历算法实现
- 常见的HTML虚元素
- 第十二周项目1-图基本算法库
- 第13周SHH数据结构-【项目1-Prim算法的验证 】
- Recover Binary Search Tree
- 第十三周 项目3-Dijkstra算法的验证
- 谁是赢家—— Web API 和 WCF 的比较
- 第十一周 项目1-3 中序线索化二叉树的算法验证
- JavaScript学习(5.2):声明语句
- 第三周-项目1 - 顺序表的基本运算
- 第十三周项目1-Prim算法的验证
- iOS开发教程:Storyboard全解析
- 第十二周--数据结构--输出出图G中每个顶点的出度