VUE中的AES对称加密应用(详细)

密码学中的高级加密标准(Advanced Encryption Standard,AES),又称Rijndael加密法,是美国联邦政府采用的一种区块加密标准。

话不多说上才艺!

一、在终端中输入安装命令:

npm install crypto-js --save-dev

VUE中的AES对称加密应用(详细)_第1张图片

二、在VUE目录的src文件夹中的common公用文件夹中添加文件AES.js,在文件中添加代码。

import CryptoJS from 'crypto-js';
 
export default {
    //随机生成指定数量的16进制key
    generatekey(num) {
        let library = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
        let key = "";
        for (var i = 0; i < num; i++) {
            let randomPoz = Math.floor(Math.random() * library.length);
            key += library.substring(randomPoz, randomPoz + 1);
        }
        return key;
    },
    
    //加密
    encrypt(word, keyStr) {
        keyStr = keyStr ? keyStr : 'abcmilanqwe12345'; //判断是否存在key,不存在就用定义好的16位的key
        var key = CryptoJS.enc.Utf8.parse(keyStr);
        var srcs = CryptoJS.enc.Utf8.parse(word);
        var encrypted = CryptoJS.AES.encrypt(srcs, key, { mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7 });
        return encrypted.toString();
    },
    //解密
    decrypt(word, keyStr) {
        keyStr = keyStr ? keyStr : 'abcdsxyzhkj12345';
        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();
    }
 
}

三、在需要的地方引入AES.js文件

import AES from "@/common/AES.js";

四、调用&测试

//控制台输出测试
var keys = AES.generatekey(16);
//如果是对象/数组的话,需要先JSON.stringify转换成字符串
var encrypts = AES.encrypt(JSON.stringify(cars),keys);
var dess = JSON.parse(AES.decrypt(encrypts,keys));

// var encrypts = that.$encrypt('1234asdasd',keys);
// var dess = that.$decrypt(encrypts,keys);

console.log(encrypts)
console.log(encrypts.length)
console.log(dess)

使用页面测试:

页面控件


加密

//点击的方法
encryptBtn:function(){
            var that=this;
            var mainKey=AES.generatekey(16);
            //先加密显示,再解密输出
            this.encryptStr=AES.encrypt(this.loginForm.uname,mainKey);
            this.decryptStr=AES.decrypt(that.encryptStr,mainKey)
            
        }

VUE中的AES对称加密应用(详细)_第2张图片

 

你可能感兴趣的:(VUE)