簡介:以上文章講述的是【C# 面試考核基礎知識】接下來我總結一下【C#請求JavaAPI介面安全校驗流程(精簡版)】,覺得我還可以的可以加群一起督促學習探討技術,QQ群:1076570504 個人學習資料庫http://www.aolanghs.com/ 微信公眾號搜索【歡少的成長之路】
我始終相信,分享的越多識訓的就越多!所以這里把我最近幾天鉆研的專案安全校驗機制流程實作與細節分享給大家!
利用RSA加密演算法,MD5加密演算法,簽名認證機制,Token校驗機制,時間戳失效機制
加密解密流程
演變一
- C# 利用RSA加密演算法對賬號密碼進行加密,POST請求到Java后端,(加密演算法的引數是用公鑰進行加密的)
- Java后端接收之后先把接收的資料處理一下(坑)(前后端傳輸的時候存在轉義字符,轉義字符是自動變成空格,我接觸到的是+號,還有很多比如 ( [ { / ^ - $ | } ] ) ? * + . )
- 字串轉換之后,再利用RSA解密演算法(解密演算法的引數是用私鑰進行解密的)
- 解密之后剩下的就是常規操作了
演變二
問題來了: 難道是什么時候都可以請求 后端服務介面嗎,總有一天會被黑客破解掉 然后干倒我們的!
- 時間戳校驗失效機制上場了,
- 通過獲取(后端)當前時間戳函式——前端傳過去的時間戳函式=失效時間
- 我這里的失效時間是5秒中,5秒鐘不發生回應我就認為失效了,你必須重新請求
System.currentTimeMillis() - time > 1 * 50 * 1000
演變三
兜兜轉轉,我們好像遺留了最初的問題!介面身份! 為什么可以訪問?
- Token身份驗證出來了,為什么要把Token放在這里輸出呢,因為我這是CS端的Token,意思也就是說,Token的用處是 驗證登錄之后的請求是否被后端允許,而不是第一次,
- 這里是一大堆驗證成功之后,我會把Token放在json里發給前端,然后以供前端下次請求應用
String jsonConcat=JsonUnit.JSONMain(1, UUID.randomUUID().toString(),merchant,1);
演變四
最后一步,也是這里的大結局了!簽名機制,驗證以上資訊是否被篡改
- 我的操作流程就是通過客戶端對賬號密碼和鹽一系列的MD5加密,因為MD5是不可逆的,所以利用MD5來進行簽名驗證是最合適不過了,
- 客戶端請求API發送的簽名引數{e3e7a8a0c40f3629e87072ae237e3acd},到底和誰比較呢?
- 前端傳遞的賬號,密碼用公鑰RSA加密過后的密文,后端通過私鑰進行RSA解密,解密之后再進行賬號密碼鹽的拼接進行MD5進行加密
- 到了這一步估計大家都懂了,也就是后端RSA解密的資訊重新加密和前端的簽名資料進行比較!
這個專案設計到跨國業務,收費專案,無法公布太多,抱歉!

總結
如果以上資訊聽的有點糊里糊涂的,可以學習一下我之前整理的HTTPS底層原理!完美的解釋了瀏覽器的所有的訪問流程以及原理!
以上問題有不懂的私聊 QQ群:1076570504 給你一一解答
知道的越多,不知道的就越多,找準方向,堅持自己的定位!加油向前不斷前行,侄訓有柳暗花明的一天!
創作不易,你們的支持就是對我最大認可!
文章將持續更新,我們下期見!QQ群:1076570504 【QQ:2773938492】 微信公眾號搜索【歡少的成長之路】請多多支持!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/282260.html
標籤:其他
上一篇:爬蟲學習日記2021-5-1
