使用场景, 用户填写自己的信息/手机号/地址等
为什么要进行加密传输,是因为h5和后端产生交互的这个过程中呢,会很容易被劫持数据
故而需要在传输过程中保持数据不可见性,前端存储公钥加密,而后端存储私钥进行解密
一般情况来说,前端不会存储私钥也不能存储私钥,不符合安全规范,因为前端的js文件也是可以被扒出来的
如何进行处理呢,简单的单向加密
只需要用到插件jsencryppt,当然,前后端定义好同样的加密方式,base64或者其他,这边选择的是jsencryppt,jsencryppt网罗了诸多加密方式,譬如 enc,aes,SHA1 等等
定义:前端本地新建文件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)