用Javascript解密AES-256-CBC(盐渍)密文

时间:2013-07-28 19:43:44

标签: javascript encryption openssl aes

我有一个使用此openssl命令创建的加密消息:

openssl enc -aes-256-cbc -salt -in plaintext.txt -out cipher.enc

我尝试使用CryptoJS和this aes library来解密它。我得到的只是胡言乱语。我的问题是解密失败了,因为我不知道如何告诉javascript解密密码是咸的,还是因为它处于“cbc-mode”状态。 CryptoJS看起来更灵活,因此可能非常有效。但我应该提供什么样的参数呢?

注意:这是在浏览器中运行,而不是在node.js

中运行

1 个答案:

答案 0 :(得分:1)

我使用以下命令将“Message”放入文件中

echo -n "Message" > plaintext.txt

然后我使用了您的示例,password作为我的密码

openssl enc -aes-256-cbc -salt -in plaintextut cipher.enc
enter aes-256-cbc encryption password:
Verifying - enter aes-256-cbc encryption password:

然后我需要cipher.enc

的Base64版本
cat cipher.enc | base64
U2FsdGVkX1/oA4O+uXXBXAjAenRJwpUV4UqQp4aYCpk=

最后,这是为我工作的CryptoJS:

var dec = CryptoJS.AES.decrypt("U2FsdGVkX1/oA4O+uXXBXAjAenRJwpUV4UqQp4aYCpk=", "password");
var plaintext = CryptoJS.enc.Latin1.stringify(dec);