三方对接时常用的加密方式
生活随笔
收集整理的這篇文章主要介紹了
三方对接时常用的加密方式
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一般在三方暴露對外api時都會通過加密參數來保證數據的不可篡改行,而加密方式多種多樣,像MD5、sha1、Base64、sha256、AES等各種加密編碼算法。
而在驗證用戶方面會用到分配給用戶的appkey及appSecret等信息,在參數傳遞的時候會將appKey或者appId作為公共參數傳遞以在三方符合獲取此賬戶權限及秘鑰,而秘鑰則是隱示的存在參數加密編碼中,三方按相同規則加密編碼比對傳輸編碼來保證數據沒有被篡改。
而還有可能會對接口版本跟請求有效期進行傳參限制,會增加版本參數v及時間戳等參數來限制暴露接口的安全性及多版本的非同加密方式。
以下是幾個三方對接時的加密方式:
1. 電子簽章法大大:
按上圖的摘要計算流程來分析就是如下代碼示例和步驟
Base64(SHA1(app_id+MD5(timestamp)+SHA1(app_secret+ sort)) ) 步驟 1.序列化需要參與 A.將參與摘要計算的業務參數按字典升序排列 B.將 app_secret 附加到字符串串前 步驟 2.對得到的字符串進?SHA1 加密步驟 3.計算 timestamp的MD5值,并和app_id,步驟 2 中得到的字符串拼接得到新的字符串 步驟 4.對步驟3中得到的字符串進行SHA1 加密 步驟 5.對步驟 4 中得到的字符串進?base64 加密 在傳參時會分公共參數與業務參數,公共參數是必要的,而業務參數則是針對每個接口的業務規則所對應的參數 法大大的公共參數有
| app_id | String | 是 | 接入方ID |
| timestamp | String | 是 | 請求時間 yyyyMMddHHmmss |
| v | String | 是 | 版本號 |
| msg_digest | String | 是 | 簽名摘要 |
2. 諸葛零售云:
公共參數
| app-key | String | 是 | 零售云為租?分配 |
| timestamp | String | 是 | 調?API時的系統時間戳,時區為GMT+0800 |
| v | String | 是 | 版本號,固定值1.0 |
| sign | String | 是 | 簽名串 |
參與簽名的參數
| 參數? | 說明 |
| timestamp | 調?API時的系統時間戳,時區為GMT+0800 |
| app_key | 零售云為租?分配 |
| app_secret | 零售云為租?分配 |
| v | 版本號,固定值1.0 |
| path | 請求路徑 |
簽名格式
把所有參數名和參數值進?拼接(參數值以“xxx”表?),拼接時不允許有跨?、空格等空? 字符: app_keyxxxpathxxxtimestampxxxv1.0 將零售云分配的 app_secret 拼接到字符串的兩端( app_secret 取值以“SSS”表?): SSSapp_keyxxxpathxxxtimestampxxxv1.0SSS ? SHA256 算法對原始串進?摘要,偽代碼如下: String sign = SHA256("SSSapp_keyxxxpathxxxtimestampxxxv1.0SSS")最后得到的編碼就是參數sign
3. 銀豹:
PosPal 銀豹收銀系統
請求頭
| time-stamp | String | 是 | 時間戳, |
| data-signature | String | 是 | 1:appKey,請求體 拼接 2:md5 加密(32位) 3:轉為大寫 |
這個比較簡單,將appKey與請求體拼接后使用MD5加密得到編碼串,編碼串全部轉為大寫得到簽名串,但是流程都是一致的
總結
以上是生活随笔為你收集整理的三方对接时常用的加密方式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 森林水文学类毕业论文文献都有哪些?
- 下一篇: wiki上关于CUDA的介绍(显卡算力查