vue中使用AES.js和crypto.js加密

一:crypto-js加密

1.1:安装依赖

npm install crypto-js --save-dev 

1.2 :在项目目录上创建一个js文件里面写入加密,解密的代码

mport CryptoJS from 'crypto-js'
/**
 * 
 * @param {*待加密的字符串} str 
 * @param {*相当于是密钥} strKey 
 * @param {*相当于是双层密钥的意思} strIv
 *  strKey strIv长度需要和后面商量
 */
export let encrypt = function (str, strKey, strIv) { //加密
    let key = CryptoJS.enc.Utf8.parse(strKey);
    let iv = CryptoJS.enc.Utf8.parse(strIv);
    let encrypted = '';

    let srcs = CryptoJS.enc.Utf8.parse(str);
    encrypted = CryptoJS.AES.encrypt(srcs, key, {
        iv: iv,
        mode: CryptoJS.mode.CBC,
        padding: CryptoJS.pad.Pkcs7
    });
    return encrypted.ciphertext.toString();
};
export let decrypt = function (str, strKey, strIv) { //解密
    let key = CryptoJS.enc.Utf8.parse(strKey);
    let iv = CryptoJS.enc.Utf8.parse(strIv);
    let encryptedHexStr = CryptoJS.enc.Hex.parse(str);
    let srcs = CryptoJS.enc.Base64.stringify(encryptedHexStr);
    let decrypt = CryptoJS.AES.decrypt(srcs, key, {
        iv: iv,
        mode: CryptoJS.mode.CBC,
        padding: CryptoJS.pad.Pkcs7
    });
    let decryptedStr = decrypt.toString(CryptoJS.enc.Utf8);
    return decryptedStr.toString();
};
export function getTimes() {
    return new Date().getTime()
};

 当然具体加密方式就要看公司内部的规则。但是方法差不多

1.3:main.js中全局引入

import { encrypt, decrypt } from '@/utils/encryp.js';
 
Vue.prototype.encrypt = encrypt
Vue.prototype.decrypt = decrypt

1.4:在你想要使用的页面进行使用

let c = this.encrypt("所需加密的字符串")
console.log(c)            //加密
let d = this.decrypt(c)
console.log(d)            //解密

二:AES.js加密

其实方法大同小异

2.1:装依赖

npm install aes-js

2.2:创建文件装代码

var data1={}//要加密的数据

var aseKey='你们公司自己的密钥';//密钥
var key = CryptoJS.enc.Utf8.parse(aesKey);//将密钥转换成Utf8字节数组

//加密
   var encrypt = CryptoJS.AES.encrypt(JSON.stringify(data1), key, {
		 iv: CryptoJS.enc.Utf8.parse(aseKey.substr(0,16)),
          mode: CryptoJS.mode.CBC,
         padding: CryptoJS.pad.Pkcs7
    });
    var data2=encrypt.toString();//加密后的数据

//解密

  var decrypt = CryptoJS.AES.decrypt(data2, key, {
            iv: CryptoJS.enc.Utf8.parse(aseKey.substr(0,16)),
            mode: CryptoJS.mode.CBC,
            padding: CryptoJS.pad.Pkcs7
 });
 var data3=JSON.parse(decrypt.toString(CryptoJS.enc.Utf8));//解密后的数据

2.3:然后与上面相同在自己需要的地方使用

AES.JS加密取自于:https://blog.csdn.net/yingbaoyu/article/details/95761177   经过实际的测试也可以达到加密的效果。

原文地址:https://www.cnblogs.com/Old-vegetable-chicken/p/14217493.html