Javascript 在OpenSSL加密后使用CryptoJS进行解密

Javascript 在OpenSSL加密后使用CryptoJS进行解密,javascript,openssl,cryptojs,Javascript,Openssl,Cryptojs,我正在使用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,生成以下输出:M

我正在使用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”输出,但它产生了一个空字符串结果。有人能帮忙吗?

试过这个吗

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 });

我找到了解决办法。在options参数中,我必须使用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 });

如果您建议的内容不是答案,您可能应该将其作为注释提供。您是对的,但代码不会在注释区域中呈现