SDK接口設計&對接流程

1、前言

基本上系統都會涉及與外部系統的交互,不論數據、或者業務上,這就涉及到 SDK 接口開發,假設接口由您來設計並開發,那麼如何保證整個流程的對接、安全性又如何保證呢?ok,開始今天的學習。算法

(一)SDK 介紹

SDK 即「軟體開發工具包」,通常是一些被軟件工程師用於爲特定的軟件包、軟件框架、硬件平臺、操做系統等創建應用軟件的開發工具的集合。通俗點是指由第三方服務商提供的實現軟件產品某項功能的工具包。安全

攤牌了,不裝了,直接上設計的模擬詳細的對接流程圖框架

(二)SDK 對接流程圖

image

看完以後,您是否基本上對 SDK 的整個兩端流程已經有了大體的瞭解了呢?工具

2、SDK 接口安全

接口安全,這是 SDK 開發者最擔憂的問題了,畢竟 SDK 平臺若是是暴露互聯網,安全不考慮,平臺坐着等着癱瘓吧,做爲 SDK 設計及開發者,你們確定會問:學習

  • 您的接口安全嗎?
  • 您的接口數據傳輸安全,會不會數據泄露?業務數據會不會篡改?
  • 您的接口時效性如何保證?

基於以上的靈魂拷問,我們就來好好設計下 SDK ,廢話不說往下走。開發工具

  • 接口安全採用非對稱的加密算法 RSA 進行簽名,保證接口的完整性安全。
  • 接口數據安全採用對稱加密算法 AES 對業務數據進行加密,密文傳輸。
  • 時效性採用每次請求時間戳保證接口的有效請求。

(一)簽名算法

簽名流程:
1.對參與AES加密的業務參數數據序列化爲JSON字符串,而後對其進行AES加密。獲得data參數。
【AES加密模式:CBC 填充:PKCS7 數據塊:128位 輸出:base64 字符集:UTF-8】
2.而後對非code、msg、sign、可空字段空值之外的全部參數字母ASCII碼排序「&」鏈接,進行RSA簽名,獲得sign參數。


編碼

注:data、sign須要url編碼後傳輸。加密

在返回結構的狀態屬於200時,再進行驗籤流程。
驗籤流程:
先對返回結果進行RSA驗籤,獲得AES密文,先根據接口版本號,時間戳驗證接口有效性、時效性,再對AES密文進行解密,獲得返回明文業務數據JSON字符串。

url

注:data、sign須要url解碼spa

3、工具

工欲善其事,必先利其器

站在巨人的肩膀上作事。

  • RSA 公私鑰生成工具。
相關文章
相關標籤/搜索