需求:账号密码加密数据传送,后台返回数据前端解密显示
解决方案: (非对称性加密)
首先,为了更好的加密,我们不能用简单的加密,因为很有可能会被轻松破解掉,我之前实现的加密只是简单的把数据加密,在测试过程中(安全性测试),通过一些技巧还是可以解密成功。
所以,对于一些重要的信息可能需要非对称加密。
所谓的非对称加密解密,在我的理解的,就是前端用一把钥匙解密/加密,而后台用另一把钥匙来做同样的操作。
也就是,前端加密用特定的钥匙,解密的钥匙只在后端那里。这样在传输过程中就不会把钥匙丢掉。
同样,后端加密数据用一把钥匙,解密的时候,前端自己有规定的钥匙,这样数据也不会在过程中解密截取。
jsencrypt,我是用这个来加密的。
1、我这里是用vue
所以,第一步 npm install jsencrypt
2、安装完之后,开始定义一个专门用来加密解密的文件,我放到utils文件里面。
引入JSEncrypt
3、重点来了加密解密
首先,我这里使用公钥加密(由后台来给你公钥)
全局引用,使用
这样加密就完成了。
解密
通常由后台加密,前端负责加密
由后台生成私钥,然后前端用来解密。
引用和加密一样