-
Http请求与Https
-
Token授权机制:用户使用用户名密码登录后服务器给客户端返回一个Token (通常是UUID) ,并将Token-Userld以键值对的形式,存放在缓存服务器中。服务端接收到请求后进行Token验证,如果Token不存在,说明请求无。
-
sign签名:每个网络请求都会有一个sign。在header里面有些对应的字段标记,它会通过一定的算法做这个sign校验来验证它是合法性的、是一个正确的请求。将请求参数用MD5或SHA-1算法加密,加密后的数据为本次请求的签名sign,并将该签名存放到缓存服务器中,超时时间设定为跟时间戳的超时时间一致(这就是为什么要尽量短,二者时间一致可以保证无论在timestamp规定时间内还是外本URL都只能访问一次)服务端接收到请求后以同样的算法得到签名,并跟当前的签名进行比对,如果不一样,说明参数被更改过,直接返回错误标识。同一个签名只能使用一次 如果发现缓存服务器中已经存在了本次签名,则拒绝服务,保证不会被重复调用
-
签名规则:设所有参数为集合M,将集合M内非空参数值的参数按照参数名ASCII码从小到大排序(字典序) ,使用URL键值对的格式(即key1=value1 &key2=value2…) 拼接成字符串stringA
參数名ASCI1码从小到大排序(字典序) ;
如果参数的值为空不参与签名;参数名区分大小写;
sign参数不参与签名,将生成的签名与该sign值作校验。
在stringA最后拼接上appkey得到stringSignTemp字符串,并对stringSignTemp进行MD5(32位)运算,再将得到的字符串所有字符转换为大写,得到sign值 -
数据加密:数据交换采用AES加密算法加密,密: appkey (32位) ,向量:前16位,模式: CBC,填充: PKCS7请求参数中如包含了敏感数据(如密码等)则需要对敏感数据进行加密返回数据中的业务数据(data字段)一律进行加密,客户端需自行解密
{
“code”:1.",
message": “the message”,
“data”:"加密后的字符串
}
appid :用于hrad里面生成sign的关键配置。
appkey: 用于返回的数据解析。 -
请求(Request)
按照参数名ASCII码从小到大排序
-
响应 (Response)
网络数据通信、加密、解密笔记
最新推荐文章于 2024-04-25 16:50:10 发布