CNode

node怎么计算文件的md5校验值

Bbuctyoyo发布于12 年前最后回复12 年前8 回复20879 浏览0 收藏
查看回复

回复 (8)

R
rapidhere#1·12 年前

crypto模块

var crypto = require('crypto');

var h = crypto.createHash('md5');

h.update("A string");
h.update("Next string");

var ret = h.digest('hex'); //'11eb1cc525474f34a4eaf2ebc90d421f'
B
buctyoyo#2·12 年前
引用 rapidherecrypto模块

这是计算一个字符串的,可以计算文件吗?

Z
zengwenbing#3·12 年前

http的客户端缓存的etag就是用到文件hash,把文件用流读到buffer存起来(加密后 楼上就可以),然后将buffer pipe到文件中

A
alsotang#4·12 年前
引用 rapidherecrypto模块

@witmobyoyo

这不只是计算一个字符串,这是在计算一个流(buffer),buffer 的表现形式之一是字符串。

文件都是 buffer 组成的。

所以这个方法也能用来计算文件。

请在 statckoverflow 寻找对应代码。

D
dead-horse#5·12 年前
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'));
});
B
buctyoyo#6·12 年前
引用 dead-horse

非常感谢

B
buctyoyo#7·12 年前
引用 rapidherecrypto模块

@alsotang非常感谢

参与回复
登录后即可参与回复。登录