Я хотел бы получить md5-хеш файла в nodejs, но получаемый хеш отличается от хеша, который я могу получить непосредственно из терминала.
В nodejs я делаюэто (от здесь )
var fd = fs.createReadStream('path/to/my/file');
var hash = crypto.createHash('md5');
hash.setEncoding('hex');
fd.on('end', function() {
hash.end();
console.log(hash.read()); // the desired sha1sum
});
fd.pipe(hash);
и вывод d41d8cd98f00b204e9800998ecf8427e
И в моем терминале я делаю:
md5sum path/to/my/file
и выход f6ef86836065f2370ebd9b1caadce3b4
У вас есть идеи о том, почему?
Спасибо
РЕДАКТИРОВАТЬ
Вот мой код:
//Download file
var firmware = fs.createWriteStream(desiredFirmwareProperties.fwName);
var r = https.get(desiredFirmwareProperties.fwURI, function(response) {
response.pipe(firmware);
});
//Checksum
var fd = fs.createReadStream(desiredFirmwareProperties.fwName);
var hash = crypto.createHash(desiredFirmwareProperties.fwChecksumAlgo);
hash.setEncoding('hex');
fd.on('end', function() {
hash.end();
console.log(desiredFirmwareProperties.fwChecksum);
console.log(hash.read());
});
fd.pipe(hash);