vue中使用aes加密

1、安裝

npm install crypto-js

2、創建aes.js文件

我是放在src/utils/aes.js

3、aes頁面引入方法

import CryptoJS from 'crypto-js/crypto-js'

/*
 * 默認的 KEY IV     如果在加密解密的時候沒有傳入KEY和IV,就會使用這裏定義的
 * 
 * 前後端交互時需要前後端密鑰和初始向量保持一致
 */

const KEY = CryptoJS.enc.Utf8.parse("1234567890ABCDEF");//  密鑰        長度必須爲16位
const IV = CryptoJS.enc.Utf8.parse("123456");           //  初始向量    長度隨意

/*
 * AES加密 :字符串 key iv  返回base64
 */
export function encrypt(str, keyStr, ivStr) {
    let key = KEY
    let iv = IV

    if (keyStr && ivStr) {
        key = CryptoJS.enc.Utf8.parse(keyStr);
        iv = CryptoJS.enc.Utf8.parse(ivStr);
    }

    let srcs = CryptoJS.enc.Utf8.parse(str);
    var encrypt = CryptoJS.AES.encrypt(srcs, key, {
        iv: iv,
        mode: CryptoJS.mode.CBC,            //這裏可以選擇AES加密的模式
        padding: CryptoJS.pad.Pkcs7
    });
    return CryptoJS.enc.Base64.stringify(encrypt.ciphertext);
}

/*
 * AES 解密 :字符串 key iv  返回base64
 */
export function decrypt(str, keyStr, ivStr) {
    let key = KEY
    let iv = IV

    if (keyStr && ivStr) {
        key = CryptoJS.enc.Utf8.parse(keyStr);
        iv = CryptoJS.enc.Utf8.parse(ivStr);
    }

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

    var decrypt = CryptoJS.AES.decrypt(src, key, {
        iv: iv,
        mode: CryptoJS.mode.CBC,            //這裏可以選擇AES解密的模式
        padding: CryptoJS.pad.Pkcs7
    });

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

 4、在需要加密的組建中引入

import { encrypt, decrypt } from "@/utils/aes.js";

5、加密解密

 

let aa = 'www';
let aa = encrypt(aa);
console.log(aa);
let aa = decrypt(aa);
console.log(aa);

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章