AES 加解密算法

最近的vue项目有用到对密码进行加解密操作
MD5不可逆
网上看了一些别的算法,最后确认使用AES算法进行加解密

// 安装crypto-js
npm install crypto-js --save

创建CryptoJS.js文件封装加解密方法,内容如下

//封装加解密方法
import CryptoJS from "crypto-js";
export default {
  // 加密
  encrypt(word, keyStr) {
    keyStr = keyStr ? keyStr : "xxxxxxxxxxxxxxxx";
    let key = CryptoJS.enc.Utf8.parse(keyStr);
    let srcs = CryptoJS.enc.Utf8.parse(word);
    let encrypted = CryptoJS.AES.encrypt(srcs, key, {
      mode: CryptoJS.mode.ECB,
      padding: CryptoJS.pad.Pkcs7
    });
    return encrypted.toString();
  },
  // 解密
  decrypt(word, keyStr) {
    keyStr = keyStr ? keyStr : "xxxxxxxxxxxxxxxx";
    var key = CryptoJS.enc.Utf8.parse(keyStr);
    var decrypt = CryptoJS.AES.decrypt(word, key, {
      mode: CryptoJS.mode.ECB,
      padding: CryptoJS.pad.Pkcs7
    });
    return CryptoJS.enc.Utf8.stringify(decrypt).toString();
  }
};

第一个参数word是待加密或者解密的字符串;
第二个参数keyStr是aes加密需要用到的16位字符串的key,keyStr 的长度要不小于14位,否则解密时会显示空白----这个keyStr可自定义,由前端和后端共同约定好即可;
如果想对一个js对象加密,需要先把该对象转成json字符串

在需要的页面引入该js文件

import CryptoJS from '../assets/js/CryptoJS';
// 加密值根据keyStr的变化而变化
// 加密--888888
let oldEncryPwd = CryptoJS.encrypt(this.pwdForm.oldPwd);      // Fof8zAtAP9OccD4qVBTU32==
// 解密
let dePwd = CryptoJS.decrypt('Fof8zAtAP9OccD4qVBTU3g==');      // 888888

你可能感兴趣的:(vue.js,es6,javascript,加密解密,AES加解密)