在node.js中我需要解密一个在linux bash中由openssl
加密的字符串,如下所示:
$ printf 'bar' | openssl aes-256-ctr -a -pass pass:secret
U2FsdGVkX1/5Zhb07x8v0nw7jQ==
在node.js中,我试着像这样解密:
var decipher = crypto.createDecipher("aes-256-ctr", "secret");
var out = decipher.update("U2FsdGVkX1/5Zhb07x8v0nw7jQ==", 'hex', 'utf8');
out += decipher.final('utf8');
console.log(out); // => empty string
但我得到的只是一个空字符串。 我在哪里做错了?
修改
我仍然得到错误的结果,但无论如何我意识到加密的字符串应该被视为base64
而不是hex
,如下所示:
var out = decipher.update("U2FsdGVkX1/5Zhb07x8v0nw7jQ==", 'base64');
out += decipher.final('utf8');