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系統定義的業務數據字段。

發佈了33 篇原創文章 · 獲贊 3 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章