11-rsa加密(vue中使用)

2023-04-16  本文已影响0人  零涂

原文地址:https://blog.csdn.net/qq_25623257/article/details/109775531

1.安装依赖包

npm install jsencrypt --save-dev
npm i encryptlong -S

2.在src/utils/文件夹下创建rsa.js文件

/* 产引入jsencrypt实现数据RSA加密 */
import JSEncrypt from 'jsencrypt' // 处理长文本数据时报错 jsencrypt.js Message too long for RSA
/* 产引入encryptlong实现数据RSA加密 */
import Encrypt from 'encryptlong' // encryptlong是基于jsencrypt扩展的长文本分段加解密功能。
// 密钥对生成 http://web.chacuo.net/netrsakeypair
 
// 公钥key
let publicKey = ''
// 私钥key
let privateKey = ''
export default {
  /* JSEncrypt加密 */
  rsaPublicData(data) {
    var jsencrypt = new JSEncrypt()
    jsencrypt.setPublicKey(publicKey)
    // 如果是对象/数组的话,需要先JSON.stringify转换成字符串
    var result = jsencrypt.encrypt(data)
    return result
  },
  /* JSEncrypt解密 */
  rsaPrivateData(data) {
    var jsencrypt = new JSEncrypt()
    jsencrypt.setPrivateKey(privateKey)
    // 如果是对象/数组的话,需要先JSON.stringify转换成字符串
    var result = jsencrypt.encrypt(data)
    return result
  },
  /* 加密 */
  encrypt(data) {
    const PUBLIC_KEY = publicKey
    var encryptor = new Encrypt()
    encryptor.setPublicKey(PUBLIC_KEY)
    // 如果是对象/数组的话,需要先JSON.stringify转换成字符串
    const result = encryptor.encryptLong(data)
    return result
  },
  /* 解密 - PRIVATE_KEY - 验证 */
  decrypt(data) {
    const PRIVATE_KEY = privateKey
    var encryptor = new Encrypt()
    encryptor.setPrivateKey(PRIVATE_KEY)
    // 如果是对象/数组的话,需要先JSON.stringify转换成字符串
    var result = encryptor.decryptLong(data)
    return result
  }
}

3.main.js中引入

import Rsa from "@/utils/rsa.js"
Vue.prototype.$Rsa = Rsa // 将Rsa注册为公共方法,方便其他页面调用

4.使用

this.$Rsa.encrypt(str)//加密    str为需要加密的字段
this.$Rsa.decrypt(str) // 解密    str为需要解密的字段
上一篇 下一篇

猜你喜欢

热点阅读