Vue中获取RSA并进行数据加密

1.先通过接口获取RSA公钥

 对应组件中的代码:

// 获取RSA并存储在本地
async mounted() {
  this.RSA = await getRsa()
    .then((res) => res.data.data)
    .catch((err) => err)
    console.log('获取RSA', this.RSA)
    localStorage.setItem('RSA', this.RSA)
}

  api文件夹中的代码 :

import axios from 'axios'
// 获取RSA
export function getRsa() {
    return axios({
        url: '/user/rsa',
        method: 'GET'
    })
}

 2.引入jsencrypt

npm install jsencrypt --save

 3.在main.js中引入

import JsEncrypt from 'jsencrypt'
Vue.prototype.$jsEncrypt = JsEncrypt

4.在对应组件引入并使用

import JsEncrypt from 'jsencrypt'

const publicKey = this.RSA // 从服务器端获取到RSA加密公钥
const encrypt = new JSEncrypt()
encrypt.setPublicKey(publicKey)
const originalData = '需要加密的数据'
console.log('加密前的数据:', originalData)
const encryptedData = encrypt.encrypt(originalData)
console.log('加密后的数据:', encryptedData)

5.报错"JSEncrypt is not defined"

1.删除node_modules包

2.package.json修改:“jsencrypt”: “3.0.0-rc.1”

3.重新安装依赖包:npm i

4.重启项目

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值