2015-01-14 32 views
1

作爲nodeschool的練習,我必須使用stdin和stdout解密文件。使用stdin和stdout解密nodejs中的文件

所以我做了這個:

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()); 

但是現在我看到這條消息:類型錯誤:不是一個字符串或緩衝區

如何解決這個問題的好辦法嗎?

回答

1

process.stdinprocess.stdout是流以及由crypto.createDecipher()創建的對象。您可以將流連接在一起,撥打電話.pipe()即可完成。

一個解決方案,您正在解決可能看起來像這樣的問題:

var crypto = require('crypto'); 

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