⑴ 如何對java請求的@requestbody前端加密後端解密
為確保前後端數據安全傳輸,本文將介紹如何在使用Spring Boot項目時,對通過@RequestBody接收的前端數據進行AES加密與後端解密的實現過程。首先,需要在Vue項目中引入`axios`和`crypto-js`兩個庫,其中`axios`用於發送請求,`crypto-js`用於加密和解密數據。
在Vue項目中創建`secret.js`文件,並編寫如下代碼:
在發送請求時,前端已准備好加密後的數據,並同時向後端發送請求。注意以下幾點:
在後端處理加密數據時,使用`hutool`工具包進行解密。
實驗結果顯示,前端與後端之間數據交換順暢,且加密與解密過程准確無誤。請嘗試使用以下鏈接快速學習Spring Boot 3.x實戰技術:
此外,推薦以下高質量的學習資源:
⑵ 前後端交互數據加解密
本文提供了一種前後端交互數據的加解密方法,主要涉及了AES和RSA兩種加密方式。
AES加密是一種對稱式加密,即加密和解密所需秘鑰是相同的。後端生成一組秘鑰,並利用該秘鑰加密數據,然後發給前端,同時也需要把秘鑰發送給前端,這樣前端才能解密。這樣就會有風險,一旦秘鑰被泄露,你的加密將不存在任何意義。同時,相比RSA加密來說,好處是不會限制加密字元串的長度。
RSA加密,是一種非對稱式加密,相比AES加密,這個就安全多了。後端生成一對秘鑰,自己拿著私鑰,公鑰可以公開。這樣前端拿公鑰進行加密,後端拿私鑰進行解密,私鑰掌握在自己手裡,被泄露的風險就小了很多。當然也有不好的地方,就是被加密字元串的長度不能過長,1024的秘鑰只能加密117位元組以內的明文,這就比較尷尬了,可能稍微長一點的數據就會超出了,當然可以通過2048或者4096的秘鑰來延長加密長度,但總會被超出。所以適合需要加密長度不長的數據,最好是已知長度的數據,這樣 就不會因長度問題報錯。
RSA+AES混合加密,即後端通過RSA演算法生成一對公私鑰,並把公鑰提供給前端。前端通過AES演算法生成密鑰,利用公鑰進行加密並送給後端,後端根據私鑰進行解密,得到與前端相同的AES密鑰。然後,前後端就可以利用AES密鑰對稱加密進行數據交互。
詳細步驟如圖所示。
RSA+AES混合加密,結合了兩種加密方式的優點。另外,前端每次啟動都會隨機生成AES密鑰,後端增加token失效機制(前端設置了定時任務請求token),增加了前後端數據交互的安全性。
https://www.cnblogs.com/huanzi-qch/p/10913636.html
https://blog.csdn.net/weixin_38342534/article/details/94582656