Node.js跨编程语言的AES解密

1 篇文章 0 订阅

本次加解密的方法为:AES,模式为CBC,填充模式为Pkcs7。
使用nodejs的crypto-js进行解密

function aesDecrypt(encrypted, key, iv) { // 解密
  // 秘钥key以及iv都需要通过Utf8进行转码
  // 密文为Base64格式的话,不需要其他转码操作
  // 解密之后需要通过toString(CryptoJS.enc.Utf8)转为字符串
  // 密文如果是Hex格式的话,需要进行Base64的转码
  // const encryptedHexStr = CryptoJS.enc.Hex.parse(encrypted);
  // const srcs = CryptoJS.enc.Base64.stringify(encryptedHexStr);
  const keydata = CryptoJS.enc.Utf8.parse(key);
  const ivs = CryptoJS.enc.Utf8.parse(iv);
  const datas = CryptoJS.AES.decrypt(encrypted, keydata, {
    iv: ivs,
    mode: CryptoJS.mode.CBC,
    padding: CryptoJS.pad.Pkcs7,
  });
  const data = datas.toString(CryptoJS.enc.Utf8);
  return data;
}

跨平台解密时,如果没有iv是解不出来的,这一点需要特别注意

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值