AES加密(CBC模式)

介绍

安全问题问题是一套程序中不可缺少的一部分,今天给大家分享个人最近使用的2款加密算法

安装依赖

cnpm install crypto-js --save-dev

使用
(1):创建文件来封装一下加解密函数方便后期全局使用

import CryptoJS from "crypto-js";  //引入依赖
const key = CryptoJS.enc.Utf8.parse("xxxx"); //十六位十六进制数作为密钥
const iv = CryptoJS.enc.Utf8.parse('xxxxx'); //十六位十六进制数作为密钥偏移量
export function Encrypt(word) {  //加密 入参:JSON字符串
    let srcs = CryptoJS.enc.Utf8.parse(word);
    var encrypted = CryptoJS.AES.encrypt(srcs, key, {
        iv: iv,
        mode: CryptoJS.mode.CBC,
        padding: CryptoJS.pad.Pkcs7
         //注意这里的Pkcs7格式,这里是有其他格式的具体还是看后台使用的是什么格式
        //如果格式和后端不一致,加密后的内容会和后端不一致
    });
    return encrypted.toString();
}
export function Decrypt(word) { //解密
    var decrypt = CryptoJS.AES.decrypt(word, key, {
        iv,
        mode: CryptoJS.mode.CBC,
        padding: CryptoJS.pad.Pkcs7  
        //注意这里的Pkcs7格式,这里是有其他格式的具体还是看后台使用的是什么格式
        //如果格式和后端不一致,解密出来无法转成JSON格式或者根本解不出来
    });
    return decrypt.toString(CryptoJS.enc.Utf8);
}

(2):引用封装好的js

 import {Encrypt,Decrypt} from "xxxxx";
 let query = {name:"liingot"}
 Encrypt(JSON.stringify(query)) //加密
 Decrypt(xxxxxx) //解密

你可能感兴趣的:(加密)