附件下載:前后端數(shù)據(jù)交互加密實(shí)例.zip
簡單介紹一下AES和RSA
- AES:對稱加解密,加密解密使用同一個秘鑰。
- RSA:非對稱加解密,使用公鑰加密數(shù)據(jù),只有對應(yīng)的私鑰才能解密,加密方和解密方各自保存秘鑰對中的一個。
為什么前后端交互要結(jié)合AES和RSA
- 如果只用AES
前端要加密數(shù)據(jù),就需要保存秘鑰,我們知道保存在前端的東西都不是秘密,秘鑰泄露后,拿到秘鑰和加密后的數(shù)據(jù),就可以解密,加密毫無意義。 - 如果只用RSA
前端只保存秘鑰對中的一個,即使泄露,也無法解密數(shù)據(jù),解決了AES的問題。但是RSA效率低,每次交互都進(jìn)行加解密,對性能影響較大。
結(jié)合使用:AES加密數(shù)據(jù),RSA加密秘鑰。AES的秘鑰動態(tài)生成,避免了前端保存秘鑰導(dǎo)致泄露的可能,RSA對秘鑰加密,保證秘鑰傳輸過程的安全。最終提交到后端的數(shù)據(jù)是:AES加密后的數(shù)據(jù) + RSA加密后的秘鑰
看這張圖就夠了

加解密序列圖