首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用密码js解密AES 256 CBC

用密码js解密AES 256 CBC
EN

Stack Overflow用户
提问于 2020-08-13 09:58:19
回答 1查看 2.7K关注 0票数 1

我有以下密钥和IV将07KxrSbGIoPCIYh0I16maw==解密为"496271",我试图搜索类似的问题,但由于缺乏加密知识,我无法从我自己解决这个问题。

代码语言:javascript
复制
get decryptedCode() {
  var key = CryptoJS.enc.Utf8.parse(
    "814591256d331af80bec0fa2bef1123e37e9f181f363af374787e24160275bce"
  )
  var iv = CryptoJS.enc.Utf8.parse("825b1f7c5f5edd614e8a0a0fef3c9ecf")
  var ciphertext = CryptoJS.enc.Base64.parse("07KxrSbGIoPCIYh0I16maw==")
  var encryptedCP = CryptoJS.lib.CipherParams.create({
    ciphertext: ciphertext,
    formatter: CryptoJS.format.OpenSSL 
  })
  var decryptedWA = CryptoJS.AES.decrypt(encryptedCP, key, { iv: iv })
  var decryptedUtf8 = decryptedWA.toString(CryptoJS.enc.Utf8)

  console.log(decryptedUtf8) // this should be 496271 but I keep getting blank string

  return decryptedUtf8
  }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-13 10:04:48

您的密钥和IV是十六进制编码的,因此要解析它们,需要使用CryptoJS.enc.Hex.parse()而不是CryptoJS.enc.Utf8.parse()

代码语言:javascript
复制
function getDecryptedCode() {
  var key = CryptoJS.enc.Hex.parse(
    "814591256d331af80bec0fa2bef1123e37e9f181f363af374787e24160275bce"
  );
  var iv = CryptoJS.enc.Hex.parse("825b1f7c5f5edd614e8a0a0fef3c9ecf");
  var ciphertext = CryptoJS.enc.Base64.parse("07KxrSbGIoPCIYh0I16maw==");
  var encryptedCP = CryptoJS.lib.CipherParams.create({
    ciphertext: ciphertext,
    formatter: CryptoJS.format.OpenSSL
  });
  var decryptedWA = CryptoJS.AES.decrypt(encryptedCP, key, {
    iv: iv
  });
  var decryptedUtf8 = decryptedWA.toString(CryptoJS.enc.Utf8);

  return decryptedUtf8;
}

console.log(getDecryptedCode()); // 496271
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.0.0/crypto-js.min.js"></script>

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63392632

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档