Crypto-JS AES-128-CBC-PKCS7 加密 解密

1 篇文章 0 订阅
1 篇文章 0 订阅

const CryptoJS = require("crypto-js");


/**
 * 加密方法
 * @param key      加密key
 * @param iv       向量
 * @param data     需要加密的数据
 * @returns string
 */
const encrypt = function(key, iv, data) {
    key = CryptoJS.enc.Utf8.parse(key)
    iv = CryptoJS.enc.Utf8.parse(iv)
    data = CryptoJS.enc.Utf8.parse(data)
    const option = {
        iv: iv,
        mode: CryptoJS.mode.CBC,
        padding: CryptoJS.pad.Pkcs7
    }
    return CryptoJS.AES.encrypt(data, key, option).ciphertext.toString();
};


/**
 * 解密方法
 * @param key      解密的key
 * @param iv       向量
 * @param data     密文
 * @returns string
 */
const decrypt = function(key, iv, data) {
    key = CryptoJS.enc.Utf8.parse(key)
    iv = CryptoJS.enc.Utf8.parse(iv)
    data = CryptoJS.enc.Base64.stringify(CryptoJS.enc.Hex.parse(data));
    const option = {
        iv: iv,
        mode: CryptoJS.mode.CBC,
        padding: CryptoJS.pad.Pkcs7
    }
    return CryptoJS.AES.decrypt(data, key, option).toString(CryptoJS.enc.Utf8);
}

export default {
    encrypt,
    decrypt
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值