nuxt中 针对前端 进行加密解密

2019-12-26T16:49:18.467 | 浏览:91 | 文章类别: 前端

在~/plugins下新建 encrytion.js文件

const crypto = require('crypto');

export default {
  aesEncrypt(data, key){
    try{
      var salt =  key.toString() + 'manbanzhen';    // 定义盐值
      const cipher = crypto.createCipher('aes192', salt);   // 采用aes192加密方式
      var crypted = cipher.update(data, 'utf8', 'hex');     // 加密
      crypted += cipher.final('hex');
      return crypted;
    }catch (e) {        // 加捕获是为了在验证失败的时候,直接让用户重新登陆
      alert("检测到存在安全异常,请检查当前网络环境并重新登录!");
      window.location.href = '/login'
    }

    },

  aesDecrypt(encrypted, key) {
    try{
      var salt =  key.toString() + 'manbanzhen';    // 定义盐值
      const decipher = crypto.createDecipher('aes192', salt);   // 解密 aes192
      var decrypted = decipher.update(encrypted, 'hex', 'utf8');    //解密
      decrypted += decipher.final('utf8');
      return decrypted;
    }catch (e) {        // 加捕获是为了在验证失败的时候,直接让用户重新登陆
      // console.log("error*-**--*-")
      alert("检测到存在安全异常,请检查当前网络环境并重新登录!");
      window.location.href = '/login';
    }
    }
}

在需要的地方进行引用:

import encrytion from '~/plugins/encrytion'

encrytion.aesEncrypt('待加密的内容','密钥')

encrytion.aesDecrypt('待解密的密文','密钥')