app通讯协议
加密协议
1)所有请求包体前面8个字节是随机串,剩余所有的加密密文
2)加密key:
A)Body前面8个字节作为随机key
B)客户端固定写死一个key
加密过程
$DYNAMIC_KEY=12345678 #8动态密码
$FIXED_KEY=#$&(*#*$(#$&( #固定写死的key
#两者拼接成后取md5为密钥, $KEY长度是32个字节
$KEY=md5_raw($DYNAMIC_KEY+$FIXED_KEY)
IV=0
#生成加密内容, 动态密码 拼上base64_encode 后的密文
$CIPHER_TEXT = $DYNAMIC_KEY + base64(aes-cbc-128($KEY, $PLAIN_TEXT))
解密过程
$KEY= md5_raw(Substr($CIPHER_TEXT, 0, 8) + $FIXED_KEY) #得到密钥,密文前8字节为动态密码,拼上固定密码
Decrypt(base64_decode(Substr($CIPHER_TEXT, 8, -1)), $KEY, IV) #进行解密,去掉前8字节后为base64_encode 后的密文
3)加密算法:
加密算法采用AES的CBC模式加解密。
5)http头包含字段(*必传字段)
packageName
packageVer
接口示例
1)/v1/user/register
Req:
{
“account”:”xxx”, //账户名 游客为设备的deviced_id
“password”:”xxx”, //设置密码
“app_id”:”1” //每个应用各平台数据库端(卫军)会分配一个id号
“device_id”:”” //设备ID
“prd_id”:”1” //每个应用数据库端(卫军)会分配一个id号
}
Res:
{
“code”:0,
”msg”:””,
“data”:{
“uid”:”xxx”,
“token”:””
“expire_time”:””
}
}