2016-11-15 44 views
0

我嘗試從文本文件中讀取字符串,對其進行編碼並保存到文件中。我想使用pipe以便將hashReadStream轉移到WriteStream。但我不知道如何改變已更改的數據。我的代碼:節點:讀取數據,將其轉換並使用流和管道寫入文件

const crypto = require('crypto'); 
const fs = require('fs'); 
let hash = crypto.createHash('md5'); 
var rs = fs.createReadStream('./passwords.txt'); 
var ws = fs.createWriteStream('./new_passwords.txt'); 


rs.on('data', function(d) { 
    hash.update(d); 
}); 
rs.on('end', function(d) { 
    console.log(hash.digest('hex')) 
}); 
+1

**不加密的密碼**,當攻擊者獲取DB他也得到了加密鍵。使用隨機鹽在HMAC上迭代大約100毫秒的持續時間,並用散列表保存鹽。使用諸如password_hash,PBKDF2,Bcrypt和類似函數的函數。關鍵是要讓攻擊者花費大量時間通過強力查找密碼。 – zaph

+0

我第二@zaph在這個 –

回答

1

根據the documentation它應該是那麼容易,因爲:

const fs = require('fs') 
const crypto = require('crypto') 
const hash = crypto.createHash('md5') 
const rs = fs.createReadStream('./plain.txt') 
const ws = fs.createWriteStream('./hashed.txt') 

rs.pipe(hash).pipe(ws) 
2
var rs = fs.createReadStream('./passwords.txt'); 
var ws = fs.createWriteStream('./new_passwords.txt'); 
var Transform = require('stream').Transform; 
var transformer = new Transform(); 

transformer._transform = function(data, encoding, cb) { 
// do transformation 
cb(); 
} 

    rs 
    .pipe(transformer) 
    .pipe(ws); 
相關問題