API接口加密方式說明


 

標簽: 接口
 分類:
 

目錄(?)[+]

 

一、文檔說明

本文檔適用於api接口開發人員、移動端開發人員,針對移動端請求API接口時加密方式以及加密規則進行說明。

二、加密方式

1.不采取非對稱加密說明

好處:

相對於對稱加密,非對稱加密安全性遠遠高宇對稱加密,能夠保證在數據傳輸中數據被劫持之后不被破解。

缺點:

由於非對稱加密 [ openssl rsa ],密鑰為1024bit時候最多值能加密117個字符,而且加解密相對於對稱加密速度會慢,目前接口和app交互數據較多時候,只能采取分段加密之后拼裝,解密時候也需要分段解密,不適用當前使用場景。

 

2.非對稱加密方式說明

(1)加密算法說明

 

加密算法:AES

加密模式:CBC

填充方式:PKCS7

加密密鑰: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加密,防止在傳輸過程中被截斷篡改,接口不強制對參數順序進行校驗。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM