From the quoted snippet in the question:
[the Hash class] It is a stream that is both readable and writable. The written data is
used to compute the hash. Once the writable side of the stream is
ended, use the read() method to get the computed hash digest.
So what you need to hash some text is:
var crypto = require('crypto');
// change to 'md5' if you want an MD5 hash
var hash = crypto.createHash('sha1');
// change to 'binary' if you want a binary hash.
hash.setEncoding('hex');
// the text that you want to hash
hash.write('hello world');
// very important! You cannot read from the stream until you have called end()
hash.end();
// and now you get the resulting hash
var sha1sum = hash.read();
If you want to get the hash of a file, the best way is create a ReadStream from the file and pipe it into the hash:
var fs = require('fs');
var crypto = require('crypto');
// the file you want to get the hash
var fd = fs.createReadStream('/some/file/name.txt');
var hash = crypto.createHash('sha1');
hash.setEncoding('hex');
fd.on('end', function() {
hash.end();
console.log(hash.read()); // the desired sha1sum
});
// read all file and pipe it (write it) to the hash object
fd.pipe(hash);
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…