node怎么计算文件的md5校验值
发布于 1年前 作者 buctyoyo 932 次浏览
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到文件中

@witmobyoyo

这不只是计算一个字符串,这是在计算一个流(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'));
});
回到顶部