1. 程式人生 > 其它 >介面呼叫新增RSA加解密、加簽驗籤的實現

介面呼叫新增RSA加解密、加簽驗籤的實現

原理

對外介面為了安全起見,需要進行相應的安全處理:主要是資料加密傳輸和身份認證。資料加密傳輸有對稱加密和非對稱加密兩種,為了更加安全起見採用非對稱加密比較好些,身份認證採用數字簽名可以實現。

非對稱加密缺點:RSA加解密速度慢、有最大長度要求。

方案一

僅採用非對稱加密

RSA對內容長度的要求可以通過分組加解密解決

參考:https://blog.csdn.net/draven1122/article/details/55212252

方案二

非對稱加密+對稱加密

具體流程

呼叫方

  1.簽名生成:介面引數->摘要演算法(SHA)->引數摘要->非對稱加密(自己RSA私鑰)->簽名

  2.內容(介面引數 + 簽名 ) -->對稱加密(AES)--> 內容密文

  3.AES金鑰-->非對稱加密(對方RSA公鑰)--> AES金鑰密文

  4. 內容密文(請求體)+AES金鑰密文(請求頭)-> 傳輸給接收方

接收方

 1. 獲取AES金鑰密文-> 非對稱解密(自己RSA私鑰)->AES金鑰

 2. 內容密文-> AES金鑰-> 內容明文

 3. 計算簽名:內容裡的引數->摘要演算法(SHA)->引數摘要->非對稱加密(對方RSA公鑰)->簽名

 4. 比較計算得到的簽名與傳遞過來的簽名是否一致,一致則驗籤通過,繼續執行介面

 5. 返回值(加解密可選)

參考文章:

https://www.cnblogs.com/pcheng/p/9629621.html

https://blog.csdn.net/woniu211111/article/details/108114402

https://blog.csdn.net/draven1122/article/details/55212252