需求:賬號(hào)密碼加密數(shù)據(jù)傳送醋虏,后臺(tái)返回?cái)?shù)據(jù)前端解密顯示
解決方案: (非對(duì)稱性加密)
首先寻咒,為了更好的加密,我們不能用簡(jiǎn)單的加密颈嚼,因?yàn)楹苡锌赡軙?huì)被輕松破解掉毛秘,我之前實(shí)現(xiàn)的加密只是簡(jiǎn)單的把數(shù)據(jù)加密,在測(cè)試過程中(安全性測(cè)試),通過一些技巧還是可以解密成功叫挟。
所以艰匙,對(duì)于一些重要的信息可能需要非對(duì)稱加密。
所謂的非對(duì)稱加密解密抹恳,在我的理解的员凝,就是前端用一把鑰匙解密/加密,而后臺(tái)用另一把鑰匙來做同樣的操作奋献。
也就是健霹,前端加密用特定的鑰匙,解密的鑰匙只在后端那里瓶蚂。這樣在傳輸過程中就不會(huì)把鑰匙丟掉糖埋。
同樣,后端加密數(shù)據(jù)用一把鑰匙窃这,解密的時(shí)候瞳别,前端自己有規(guī)定的鑰匙,這樣數(shù)據(jù)也不會(huì)在過程中解密截取钦听。
jsencrypt洒试,我是用這個(gè)來加密的。
1朴上、我這里是用vue
所以垒棋,第一步?npm install jsencrypt
2、安裝完之后痪宰,開始定義一個(gè)專門用來加密解密的文件叼架,我放到utils文件里面。
引入JSEncrypt
3衣撬、重點(diǎn)來了加密解密
首先乖订,我這里使用公鑰加密(由后臺(tái)來給你公鑰)
全局引用,使用
這樣加密就完成了具练。
解密
通常由后臺(tái)加密乍构,前端負(fù)責(zé)加密
由后臺(tái)生成私鑰,然后前端用來解密扛点。
引用和加密一樣