node怎么计算文件的md5校验值
8 回复
crypto模块
var crypto = require('crypto');
var h = crypto.createHash('md5');
h.update("A string");
h.update("Next string");
var ret = h.digest('hex'); //'11eb1cc525474f34a4eaf2ebc90d421f'
这是计算一个字符串的,可以计算文件吗?
http的客户端缓存的etag就是用到文件hash,把文件用流读到buffer存起来(加密后 楼上就可以),然后将buffer pipe到文件中
这不只是计算一个字符串,这是在计算一个流(buffer),buffer 的表现形式之一是字符串。
文件都是 buffer 组成的。
所以这个方法也能用来计算文件。
请在 statckoverflow 寻找对应代码。
var crypto = require('crypto');
var fs = require('fs');
var rs = fs.createReadStream('./file.tgz');
var hash = crypto.createHash('md5');
rs.on('data', hash.update.bind(hash));
rs.on('end', function () {
console.log(hash.digest('hex'));
});
非常感谢
@alsotang非常感谢
非常感谢