首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用CryptoJS的加密字符串和使用OpenSSL的解密不起作用(对PBKDF2使用盐和密码)

使用CryptoJS的加密字符串和使用OpenSSL的解密不起作用(对PBKDF2使用盐和密码)
EN

Stack Overflow用户
提问于 2020-06-05 16:42:18
回答 1查看 666关注 0票数 0

我使用CryptoJS对密码进行加密,下面是我使用的示例代码

代码语言:javascript
复制
  var keySize = 256;
  var ivSize = 128;
  var iterations = 100;
  var message = "Hello World";
  var password = "SecretPassword";
function encrypt (msg, pass) {
  var salt = CryptoJS.lib.WordArray.random(128 / 8); 
  var salt_hex = CryptoJS.enc.Hex.stringify(salt);
  console.log("Salt: "+salt);
  console.log("Salt_hex: ", salt_hex.toUpperCase());
  var key = CryptoJS.PBKDF2(pass, salt, {
      keySize: keySize / 32,
      iterations: iterations
    });
  console.log("Key: "+ key);
  var iv = CryptoJS.lib.WordArray.random(128/8);
  console.log("IV:"+iv);
  var encrypted = CryptoJS.AES.encrypt(msg, key, { 
    iv: iv, 
    padding: CryptoJS.pad.Pkcs7,
    mode: CryptoJS.mode.CBC

  });
  console.log("Enc: ", encrypted.toString());
// salt, iv will be hex 32 in length
  // append them to the ciphertext for use  in decryption
  var transitmessage = salt.toString()+ iv.toString() + encrypted.toString();
  return transitmessage;
}

当函数被执行时,它提供如下数据

1438927d9bc8a42b9689a93c0fefc8506a5be0819feb2adb03c7b755c92cfd9b密钥: script.js:13:11 Salt_hex: 923ca1ab6dc88806b05f012c5f7df49f Salt_hex: 923CA1AB6DC88806B05F012C5F7DF49F script.js:14:11 Key: Salt script.js:25:11 IV:d739119c45742e4f21eb8c987184b5c9 script.js:27:11 Enc: WUBXNygIgehq90li8p08nw==

我们必须在服务器端使用OpenSSL解密生成的加密字符串。我们将加密的字符串复制到"WUBXNygIgehq90li8p08nw==“cryptenc.txt.enc文件并执行openssl命令,如下所示。

openssl aes-256-cbc -d -pbkdf2 -S 923ca1ab6dc88806b05f012c5f7df49f -iter 100 -k SecretPassword -in cryptenc.txt.enc -out cryptencout.txt

字符串没有被解密,并且低于错误“坏的魔术数”。

请帮助我知道我们正在犯什么错误,以及需要做哪些更改才能使其正常工作

EN

回答 1

Stack Overflow用户

发布于 2020-06-08 15:27:37

我自己解决了它,我们必须使用由Crypto JS生成的密钥和iv来解密,所以openssl命令应该如下所示

openssl aes-256-cbc 1438927d9bc8a42b9689a93c0fefc8506a5be0819feb2adb03c7b755c92cfd9b -d -pbkdf2 -iter 100 -base64 -K openssl -iv d739119c45742e4f21eb8c987184b5c9 -in cryptoEnc.txt -out crypto.txt

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

https://stackoverflow.com/questions/62211400

复制
相关文章

相似问题

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