节点加密 - 无法反向加密

cyb*_*bat 4 javascript cryptography node.js

为什么这不打印“你好”?

var cipher = crypto.createCipheriv('rc4', 'secret', '');
crypt = cipher.update('hello', 'binary', 'utf8');
crypt += cipher.final('utf8');

var decipher = crypto.createDecipheriv('rc4','secret', '');
data = decipher.update(crypt, 'binary', 'utf8');
data += decipher.final('utf8');

console.log(data); // prints e/l
Run Code Online (Sandbox Code Playgroud)

Aro*_*tti 6

utf8 不是有效的 cipher.final() 选项,您需要二进制。尝试这个。

var cipher = crypto.createCipheriv('rc4', 'secret', '');
crypt = cipher.update('hello', 'utf8', 'binary');
crypt += cipher.final('binary');

var decipher = crypto.createDecipheriv('rc4','secret', '');
data = decipher.update(crypt, 'binary', 'utf8');
data += decipher.final('utf8');

console.log(data);
Run Code Online (Sandbox Code Playgroud)