【问题标题】:Using CryptoJS for decryption after OpenSSL encryptionOpenSSL加密后使用CryptoJS进行解密
【发布时间】:2015-05-14 08:24:30
【问题描述】:

我正在使用 OpenSSL 加密一个 txt 文件,其中包含“Hello World”,在终端使用以下命令:

openssl enc -aes-128-ctr -in file.txt -out file-out-64.txt -base64 -A
-K 0123456789abcdef0123456789abcdef -iv 00000000000000000000000000000000`

因此,我将 AES-128(CTR 模式)与该虚拟密钥和 IV 一起使用,并在最后生成 base64,产生以下输出:Mc6prldI+uuh5Ko=

我想用 CryptoJS 解密它,我正在使用以下代码:

CryptoJS.AES.decrypt(
  "Mc6prldI+uuh5Ko=",
  CryptoJS.enc.Hex.parse("0123456789abcdef0123456789abcdef"),
  { 
    iv   : CryptoJS.enc.Hex.parse("00000000000000000000000000000000"),
    mode : CryptoJS.mode.CTR 
  }
);

我期待“Hello World”输出,但它产生了一个空字符串结果。有人可以帮忙吗?

【问题讨论】:

    标签: javascript openssl cryptojs


    【解决方案1】:

    我找到了解决方案。在选项参数中,我必须使用 NoPadding 添加填充

    var decoded   = CryptoJS.AES.decrypt("Mc6prldI+uuh5Ko=", CryptoJS.enc.Hex.parse("0123456789abcdef0123456789abcdef"), { iv: CryptoJS.enc.Hex.parse("00000000000000000000000000000000"), padding: CryptoJS.pad.NoPadding, mode: CryptoJS.mode.CTR });
    

    【讨论】:

      【解决方案2】:

      试过了吗?

      var decrypt = CryptoJS.AES.decrypt(CryptoJS.enc.Base64.parse("Mc6prldI+uuh5Ko="), CryptoJS.enc.Hex.parse("0123456789abcdef0123456789abcdef"), { iv: CryptoJS.enc.Hex.parse("00000000000000000000000000000000"), mode: CryptoJS.mode.CTR });
      

      【讨论】:

      • 如果您提出的建议不是答案,您可能应该将其作为评论提供。
      • 你是对的,但是代码没有在 cmets 区域呈现
      猜你喜欢
      • 1970-01-01
      • 2021-12-20
      • 2014-04-01
      • 2017-05-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-24
      • 2015-06-13
      相关资源
      最近更新 更多