美文网首页
vue中使用RSA进行数据加密解密

vue中使用RSA进行数据加密解密

作者: 随遇而安丶 | 来源:发表于2021-07-16 19:35 被阅读0次

    一、引入rsa

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

    二、在utils创建rsa.js文件

    image.png

    1.在rsa.js中引入

    /* 产引入jsencrypt实现数据RSA加密 */
    import JSEncrypt from 'jsencrypt' // 处理长文本数据时报错 jsencrypt.js Message too long for RSA
    /* 产引入encryptlong实现数据RSA加密 */
    import Encrypt from 'encryptlong' // encryptlong是基于jsencrypt扩展的长文本分段加解密功能。
    

    2.准备publicKey(公钥)&& privateKey(私钥)

    // 公钥key
    const publicKey = 'MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBANL378k3RiZHWx5AfJqdH9xRNBmD9wGD\n' +
      '2iRe41HdTNF8RUhNnHit5NpMNtGL0NPTSSpPjjI1kJfVorRvaQerUgkCAwEAAQ=='
    // 私钥key
    const privateKey = 'MIIBUwIBADANBgkqhkiG9w0BAQEFAASCAT0wggE5AgEAAkEA0vfvyTdGJkdbHkB8\n' +
      'mp0f3FE0GYP3AYPaJF7jUd1M0XxFSE2ceK3k2kw20YvQ09NJKk+OMjWQl9WitG9p\n' +
      'B6tSCQIDAQABAkA2SimBrWC2/wvauBuYqjCFwLvYiRYqZKThUS3MZlebXJiLB+Ue\n' +
      '/gUifAAKIg1avttUZsHBHrop4qfJCwAI0+YRAiEA+W3NK/RaXtnRqmoUUkb59zsZ\n' +
      'UBLpvZgQPfj1MhyHDz0CIQDYhsAhPJ3mgS64NbUZmGWuuNKp5coY2GIj/zYDMJp6\n' +
      'vQIgUueLFXv/eZ1ekgz2Oi67MNCk5jeTF2BurZqNLR3MSmUCIFT3Q6uHMtsB9Eha\n' +
      '4u7hS31tj1UWE+D+ADzp59MGnoftAiBeHT7gDMuqeJHPL4b+kC+gzV4FGTfhR9q3\n' +
      'tTbklZkD2A=='
    

    3.自定义加密解密函数

    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
      }
    }
    

    三、在main.js引入

    import Rsa from "@/utils/rsa.js"
    Vue.prototype.$Rsa = Rsa; //挂载到vue实例上
    

    四、使用

    password = this.$Rsa.rsaPublicData(password); 
    

    相关文章

      网友评论

          本文标题:vue中使用RSA进行数据加密解密

          本文链接:https://www.haomeiwen.com/subject/gawbpltx.html