uniapp/vue3中使用ras加密来传输密码,引入问题解决

376 阅读1分钟

使用接口传输密码时,加密是必要的,使用ras加密,需要前端请求一个后端的公钥,通过公钥来实现加密,再返回后端一个加密密码

正常用创建文件引入的方法会因为vue3的导入方式而报错,所以我们使用npm安装

npm install jsencrypt

安装好后先创建一个封装好的ras方法

import { JSEncrypt } from 'jsencrypt'
 
// key 是 加密公钥,我是登录的时候获取

// 加密
export function rsaEncrypt (msg,key) {
  const jsencrypt = new JSEncrypt()
  jsencrypt.setPublicKey(key)
  const encryptMsg = jsencrypt.encrypt(msg)
  return encryptMsg
}
 
// 解密私钥
const privateKey = ``
 
// 解密
export function rsaDecrypt (msg) {
  const decrypt = new JSEncrypt()
  decrypt.setPrivateKey(privateKey)
  const decryptMsg = decrypt.decrypt(msg)
  return decryptMsg
}

在登录的时候如何使用呢,举一个例子

login(config) {
        console.log(config);
        uni.showLoading({
                title: '发送中'
        });
        //登录时从后端获取公钥
        getkey().then(res=>{
                console.log(res);
                var data = {
                        'account':config.phone,
                        'password':rsaEncrypt(config.password,res.data.msg)
                }
                //这是登录接口
                account(data).then(res=>{
                        console.log(res);
                })
        })
},

这样传输过去的密码就进行了加密