前端AES加解密

286 阅读1分钟

1.安装crypto-js

//在项目终端中输入下面命令安装插件
npm install crypto-js --save-dev

2.新建工具类utils.js

//在工具类中引用crypto-js
import CryptoJS from "crypto-js";

3.实现加解密方法

//加密
export function Encrypt(word) {
        let key = '密钥要后后台一致';
        let iv = '偏移量要个后台一致';
        
        key = CryptoJS.enc.Utf8.parse(key);
        iv = CryptoJS.enc.Utf8.parse(iv);
        
        let srcs = CryptoJS.enc.Utf8.parse(word);
        // 加密模式为CBC,补码方式为PKCS5Padding(也就是PKCS7)
        let encrypted = CryptoJS.AES.encrypt(srcs, key, {
                iv: iv,
                mode: CryptoJS.mode.CBC,
                padding: CryptoJS.pad.Pkcs7
        });

        //返回base64
        return CryptoJS.enc.Base64.stringify(encrypted.ciphertext);

}
//解密
export function Decrypt(word) {
        let key = '密钥要后后台一致';
        let iv = '偏移量要个后台一致';

        key = CryptoJS.enc.Utf8.parse(key);
        iv = CryptoJS.enc.Utf8.parse(iv);

        let base64 = CryptoJS.enc.Base64.parse(word);
        
        let src = CryptoJS.enc.Base64.stringify(base64);

        // 解密模式为CBC,补码方式为PKCS5Padding(也就是PKCS7)
        let decrypt = CryptoJS.AES.decrypt(src, key, {
                iv: iv,
                mode: CryptoJS.mode.CBC,
                padding: CryptoJS.pad.Pkcs7
        });

        let decryptedStr = decrypt.toString(CryptoJS.enc.Utf8);
        return decryptedStr.toString();

}

4.使用

//在需要的界面引用utils.js
import { Encrypt, Decrypt} from '../utils'

 //aes加密
 let aesParams = Encrypt('a');
 //解密
 let aesParams1 = Decrypt('a');