動かざることバグの如し

近づきたいよ 君の理想に

NodejsでファイルからMD5ハッシュを取得したい

md5はこういうの

~/tmp $md5 tmp.wav
MD5 (tmp.wav) = a7b3e6a4865d0b5ae39db05371008c2a

をNodejsで求めたい

環境

  • nodejs 8
    • けど見てる感じ4以上なら動きそう 10でも動いたし

コード

const crypto = require("crypto");
const fs = require("fs");

function md5file(filePath) {
    const target = fs.readFileSync(filePath);
    const md5hash = crypto.createHash('md5');
    md5hash.update(target);
    return md5hash.digest("hex");
}

console.log(md5file('./tmp.wav'));
~/tmp $node md5.js
a7b3e6a4865d0b5ae39db05371008c2a

あってるっぽい(当然

参考リンク先でも言及されてるが、〜GB単位のファイルを扱う場合だとfs.readFileSync()が死ぬ(多分メモリに乗せるので

それも考慮した作りにしたい場合はfs.createReadStream()でストリームを扱う(以下リンク先に丸投げ

参考リンク