API接口加密方式说明

 

标签: 接口
 分类:
 

目录(?)[+]html

 

1、文档说明

本文档适用于api接口开发人员、移动端开发人员,针对移动端请求API接口时加密方式以及加密规则进行说明。android

2、加密方式

1.不采起非对称加密说明

好处:ios

相对于对称加密,非对称加密安全性远远高宇对称加密,可以保证在数据传输中数据被劫持以后不被破解。算法

缺点:json

因为非对称加密 [ openssl rsa ],密钥为1024bit时候最多值能加密117个字符,并且加解密相对于对称加密速度会慢,目前接口和app交互数据较多时候,只能采起分段加密以后拼装,解密时候也须要分段解密,不适用当前使用场景。api

 

2.非对称加密方式说明

(1)加密算法说明

 

加密算法:AES数组

加密模式:CBC安全

填充方式:PKCS7app

加密密钥:BeijingIyijigo.com

       初始化向量[ IV ]:00000000000000000000000000000000

具体实现能够参考连接 : http://www.funboxpower.com/php_android_ios_aes#codesyntax_2

(2)接口加密说明

(1)、移动端请求接口时,将数据经过POST提交到接口,

(2)、将接口须要的参数拼成数组

(3)、将数组json_encode以后

(4)、加密以后拼装为data数据传递给接口。

(3)其余参数说明

(1)、移动端请求接口的时候须要将终端类型(tt)传递给接口,建议和data数据平级。

(2)、移动端请求接口的时候须要将终端版本号(vc)传递给接口,建议和data数据平级。

例如获取用户信息接口:

http://xxx.com/user/getUserInfo?data=encrypt(json(array))&tt=1&vc=1;

 

(4)SIGN值加密以及校验说明

将请求接口须要的参数排序后的json串MD5传递给接口。

 

校验值生成步骤:

① 将接口须要的参数组装成数组 【IOS为字典,android为hashmap 】

② 将接口参数排序以后,将Key_value拼接为一个字符串

arr = array( ‘a’=> 1, ‘b’=>2);

拼装以后为a1b2

③ 将拼接的串MD5

④ 将加密以后的MD5值做为请求接口的参数传递 ( 和data,tt,vc 平级 )

备注:

用于对请求参数进行校验,接口在接收到参数时,须要对参数进行排序,json以后进行MD5校验,接口参数不强制要求按照文档顺序,校验值必须排序以后再进行MD5加密,防止在传输过程当中被截断篡改,接口不强制对参数顺序进行校验。

相关文章
相关标签/搜索