在做項目的時候,我遇到一個需求:前後端需要傳輸一些敏感數據。
雖然 HTTPS 已經可以保證傳輸安全,但在某些場景下,我還是希望能再加一層保護:
- 防止接口被隨便模擬調用
- 就算數據被截獲,也看不懂裏面的內容
- 就算用劫持的數據請求,也不進行響應
我最開始也去找過現成的方案,確實有一些成熟的實現。
但問題是——它們的功能太多、體系太重,而我的需求其實很單純,只需要“在請求上套一層加解密”。
所以與其硬拗那些複雜的框架,不如自己寫一個更輕量的版本。
我的解決方式
於是,我就寫了一個前後端配套的小工具:
- 前端:Vue 環境下的 npm 包
- 後端:PHP Composer 庫
核心思路是:
- 前端自動加密請求體
- 後端自動解密請求體
- 開發者幾乎不需要關心加解密細節,就像在用普通的請求一樣
- 內置 AES-128-CBC 加密、簽名機制、防重放允許一定的時間誤差,避免前後端時鐘不一致
用起來的樣子
前端示例:
通過 npm install hejunjie-encrypted-request 引用
後端示例:
通過 composer require hejunjie/encrypted-request 引用
整體就是“即插即用”,加密解密幾乎是無感的。
意義在哪裏
這個方案不是什麼替代 HTTPS 的黑科技,它更像是一個“小插件”:
- HTTPS 解決傳輸安全
- 我這套方案解決“再多一層殼”的需求
適合那些 對安全性有點額外要求,但又不想引入複雜框架 的項目。