前端使用ASE加密(AES/CBC/PKCS5Padding)

  前端項目中遇到須要對參數進行AES/CBC/PKCS5Padding加密,而後傳給後臺解密,將實現方法記錄下。前端

第一步安裝crypto-js

在vue項目終端中輸入下面命令安裝插件vue

npm install crypto-js --save-dev
複製代碼

第二步新建工具類utils.js

在工具類中引用crypto-jsnpm

import CryptoJS from "crypto-js";
複製代碼

加密bash

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();

}
複製代碼

第三步使用

在須要的界面引用utils.jsui

import { Encrypt, Decrypt} from '../utils'
複製代碼

使用代碼加密

//aes加密
 let aesParams = Encrypt('a');
 //解密
 let aesParams1 = Decrypt('a');
 ``複製代碼
相關文章
相關標籤/搜索