使用stdin和stdout解密nodejs中的文件

作为nodechool的练习,我必须使用stdin和stdout解密文件。

所以我做了这个:

var crypto = require('crypto'); var stream = crypto.createDecipher('aes256', process.argv[2]); var step1 = process.stdin.update(stream); var step2 = stream.final(); console.log(step2) //step2.pipe(process.stdout.toString()); 

但现在我看到这个消息:TypeError:不是一个string或缓冲区

如何解决这个好方法?

process.stdinprocess.stdout是stream以及由crypto.createDecipher()创build的对象。 您可以将stream连接在一起调用到.pipe() ,你就完成了。

解决您正在处理的问题的解决scheme可能如下所示:

 var crypto = require('crypto'); var decipher = crypto.createDecipher('aes256', process.argv[2]); process.stdin.pipe(decipher).pipe(process.stdout);