AOSP SDK 报文数据加解密规则

SDK中主功能类图设计

这里写图片描述
AospClient是供客户端直接调用的接口类。通过该类的方法可以实现对AOSP的服务访问。
AospResponse和AospRequest分别是请求的实体类和应答的实体类。
HttpPostUtils是构建请求的类,其中的静态方法实现了对请求参数的封装加密封以及请求的发送。该类是最主要的类。(该类中处理的东西有点多,几乎所有的逻辑都在这儿实现
他们的关系如图所示。还有其他的一些类没有列出都是对他们的支持。


SDK数据加密

这里写图片描述

整个数据加密,就是将上图中左侧的数据经过一些算法得到右侧的HttpPost类,其实最终过程是为发送一个符合规则的HTTP报文,这里报文中的数据用HttpPost来封装。

规则:(AospRequest简称AR,AospClient简称AC)

1、AospRequest.md5生成
将A中的dataJOSN化,再用MD5加密得到String:md5,再将md5赋值给A.md5。
2、A加密
将A对象JOSN化(list除外),得到content。再用AEC算法将(以AC.secret为参数)对content加密,得到密文contentCipher。
3、签名sign
String sign = 对content进行MD5加密运算。


组装HttpPost

HEAD部分:
“parternerKey”:AC.partnerKey
“sign” : sign
请求长度(附件):XXX
请求长度(主体):XXX

ENTITY部分:
xxx:contentCipher(加密后的主体数据)

附件内容实现略。


AOSP报文解析

AOSP对请求的报文的验证和解析都在拦截器中实现。
1、获取请求HEAD中的,请求时间,接入者身份,请求长度,签名等等
2、校验请求时间(当前时间与报文中的请求时间做比较)
3、校验接入者KEY(查看数据库中是否有该合作伙伴的KEY)
4、校验报文主体(验证报文的合法性)
4.1、content = 解密contentCipher
4.2、校验content长度(是否为空,长度是否和报文头中的数据一致)
4.3、校验签名sign
5、解析content中数据,封装成 AospServerRequest对象,该对象为包含了AOSP系统定义的业务数据字段。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值