如果是单向加密传输的话可以说,是一件极其简单的事情,
为什么要进行加密传输,是因为h5和后端产生交互的这个过程中呢,会很容易被劫持数据,故而需要在传输过程中保持数据不可见性,前端存储公钥加密,而后端存储私钥进行解密,一般情况来说,前端不会存储私钥也不能存储私钥,不符合安全规范,因为前端的js文件也是可以被扒出来的
如何进行处理呢,简单的单向加密
只需要用到插件jsencryppt,当然,需要前后端保持一致的插件
使用场景,用户填写自己的信息/手机号/地址等
前端本地新建文件publickey.js
存储加密公钥,存储秘钥需要后端根据插件jsencryppt私钥生成,需要后端给予
export const publickey='21dsa1d23sa1da56f1as1f3asf56w4q15f132wa1f321sax32dsa5wq6e1ff123dsg1d23h1g2j1ulki2l1u31k5h34k564k89iul7213k2g31j231jf32j1'
在需要使用的组件引入插件jsencryppt和publickey.js文件
import { publickey } from '@/utils/publickey.js'
import JsEncrypt from 'jsencryppt'
在定义加密方法
const getPassword = new JsEncrypt() // 提取出秘钥加密方式
getPassword.setPublicKey(publickey) // 将公钥注入进插件加密方法中
加密方法并不是以上,加密方法是encrypt,你定义好的getPassword中,会有encrypt
而使用则是放在数据中
this.getPassword.encrypt(phone)
this.getPassword.encrypt(address)
this.getPassword.encrypt(name)
数据可以打印出来给后端进行解密处理是否有误
无误后即可直接进行联调
这部分是比较简单的单向加密,如果还需要前端这边还解密展示如何实现呢,前端又不能存储私钥,该如何处理呢?
敬请下回~