JavaScript 作 ▸ 2019-08-22 16:03 改 ▸ 2019-08-26 09:53 Node.jsでSHA256ハッシュ値生成 #Node.js Windows 10Node.js v8.10.0 もくじ Crypto | Node.js v12.9.0 Documentation SHA256ハッシュ生成Node.jsconst crypto = require('crypto'); const str = 'kiriukun.com'; const hashHex = crypto.createHash('sha256').update(str, 'utf8').digest('hex'); console.log(hashHex);実行結果9dfb421400e94ca00b7b2f3e279744254d5ab011d9b7bfb0a7e329a1b307286fhexってなに?Buffer に指定できる encoding のひとつ (他にも base64 とかある) hash.digest() が返す Buffer をまんま文字列にしたもの Node.jsconst crypto = require('crypto'); const str = 'kiriukun.com'; const hashBuf = crypto.createHash('sha256').update(str, 'utf8').digest(); console.log(hashBuf);実行結果<Buffer 9d fb 42 14 00 e9 4c a0 0b 7b 2f 3e 27 97 44 25 4d 5a b0 11 d9 b7 bf b0 a7 e3 29 a1 b3 07 28 6f>好きなファイルのSHA256ハッシュ値を計算してみようhash.update() の第一引数には Buffer も渡せる const crypto = require('crypto'); const fs = require('fs'); const path = require('path'); const buf = fs.readFileSync(path.resolve(__dirname, './path/to/file')); const hashHex = crypto.createHash('sha256').update(buf, 'utf8').digest('hex'); console.log(hashHex);使用可能なハッシュアルゴリズムの確認SHA256以外にもいろいろあるよ Node.jsconst crypto = require('crypto'); console.log( crypto.getHashes() );実行結果[ 'DSA', 'DSA-SHA', 'DSA-SHA1', 'DSA-SHA1-old', 'RSA-MD4', 'RSA-MD5', 'RSA-MDC2', 'RSA-RIPEMD160', 'RSA-SHA', 'RSA-SHA1', 'RSA-SHA1-2', 'RSA-SHA224', 'RSA-SHA256', 'RSA-SHA384', 'RSA-SHA512', 'dsaEncryption', 'dsaWithSHA', 'dsaWithSHA1', 'dss1', 'ecdsa-with-SHA1', 'md4', 'md4WithRSAEncryption', 'md5', 'md5WithRSAEncryption', 'mdc2', 'mdc2WithRSA', 'ripemd', 'ripemd160', 'ripemd160WithRSA', 'rmd160', 'sha', 'sha1', 'sha1WithRSAEncryption', 'sha224', 'sha224WithRSAEncryption', 'sha256', 'sha256WithRSAEncryption', 'sha384', 'sha384WithRSAEncryption', 'sha512', 'sha512WithRSAEncryption', 'shaWithRSAEncryption', 'ssl2-md5', 'ssl3-md5', 'ssl3-sha1', 'whirlpool' ]