Node.js:由openssl加密的解密字符串

时间:2018-04-04 12:56:24

标签: node.js encryption openssl

在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');

0 个答案:

没有答案