import CryptoJS from "crypto-js"
//秘钥(后端提供)由于对称解密使用的算法是 AES-128-CBC算法,数据采用 PKCS#7 填充 , 因此这里的 key 需要为16位!
var key = CryptoJS.enc.Latin1.parse("xxxxxx"); 
// 偏移量(后端提供)
var iv = CryptoJS.enc.Latin1.parse("xxxxxxx");  
export default {
    //加密
    encrypt(data) {
    
      // data = data.replace(/[\r\n]/g, "");如果data有换行回导致报错,所以用回这个来进行换行清除
var srcs = CryptoJS.enc.Utf8.parse(data);
        var encrypted = CryptoJS.AES.encrypt(srcs, key, {
            iv: iv,
            mode: CryptoJS.mode.CBC,
            padding: CryptoJS.pad.Pkcs7
        });
        return encrypted.toString();
    },
    //解密
    decrypt(encrypted) { 
        var decrypted = CryptoJS.AES.decrypt(encrypted, key, {
            iv: iv,
            mode: CryptoJS.mode.CBC,
            padding: CryptoJS.pad.Pkcs7
        });
        return decrypted.toString(CryptoJS.enc.Utf8);
    }
}



注意:上述,加解密算法/工作模式/填充方式:AES/CBC/
Pkcs7,
秘钥、偏移量、加解密算法、工作模式、填充方式,均要与后端一致

 

posted on 2022-11-18 16:57  盐孩儿  阅读(683)  评论(0编辑  收藏  举报