簡單介紹一下AES和RSA
- AES:對稱加解密欲主,加密解密使用同一個秘鑰丹弱。
- RSA:非對稱加解密律罢,使用公鑰加密數(shù)據(jù),只有對應的私鑰才能解密籍胯,加密方和解密方各自保存秘鑰對中的一個熄浓。
為什么前后端交互要結(jié)合AES和RSA
- 如果只用AES
前端要加密數(shù)據(jù)糜芳,就需要保存秘鑰鲁纠,我們知道保存在前端的東西都不是秘密,秘鑰泄露后,拿到秘鑰和加密后的數(shù)據(jù)蝗柔,就可以解密闻葵,加密毫無意義。 - 如果只用RSA
前端只保存秘鑰對中的一個癣丧,即使泄露槽畔,也無法解密數(shù)據(jù),解決了AES的問題胁编。但是RSA效率低厢钧,每次交互都進行加解密,對性能影響較大嬉橙。
結(jié)合使用:AES加密數(shù)據(jù)早直,RSA加密秘鑰。AES的秘鑰動態(tài)生成市框,避免了前端保存秘鑰導致泄露的可能霞扬,RSA對秘鑰加密,保證秘鑰傳輸過程的安全拾给。最終提交到后端的數(shù)據(jù)是:AES加密后的數(shù)據(jù) + RSA加密后的秘鑰
看這張圖就夠了
加解密序列圖