node.jsでハッシュを計算する

提供: Node.js/JavaScript入門
移動: 案内検索
スポンサーリンク

node.jscryptoモジュールでハッシュを求めることができます。md4, md5, sha1, sha2(sha224,sha256,sha384,sha512)などのハッシュが求められます。

読み方

crypto
くりぷと
createHash
くりえいとはっしゅ
update
あっぷでーと
digest
だいじぇすと
sha1
しゃわん

概要

node.jscryptoモジュールは、暗号の機能を提供します。 使用するアルゴリズムをcrypto.createHash()に指定します。 digest()には、16進('hex')か、バイナリ('binary')を指定します。 一度にデータを渡せない場合に、update()は、何度も呼び出して使用します。

使用できるアルゴリズムを調べる

var crypto = require('crypto');
console.log(crypto.getHashes());
node get_hashes.js
[ 'DSA-SHA1-old',
  'dsa',
  'dsa-sha',
  'dsa-sha1',
  'dsaEncryption',
  'dsaWithSHA',
  'dsaWithSHA1',
  'dss1',
  'ecdsa-with-SHA1',
  'md4',
  'md4WithRSAEncryption',
  'md5',
  'md5WithRSAEncryption',
  'mdc2',
  'mdc2WithRSA',
  'ripemd',
  'ripemd160',
  'ripemd160WithRSA',
  'rmd160',
  'rsa-md4',
  'rsa-md5',
  'rsa-mdc2',
  'rsa-ripemd160',
  'rsa-sha',
  'rsa-sha1',
  'rsa-sha1-2',
  'rsa-sha224',
  'rsa-sha256',
  'rsa-sha384',
  'rsa-sha512',
  'sha',
  'sha1',
  'sha1WithRSAEncryption',
  'sha224',
  'sha224WithRSAEncryption',
  'sha256',
  'sha256WithRSAEncryption',
  'sha384',
  'sha384WithRSAEncryption',
  'sha512',
  'sha512WithRSAEncryption',
  'shaWithRSAEncryption',
  'ssl2-md5',
  'ssl3-md5',
  'ssl3-sha1',
  'whirlpool' ]

sha1を求める

ソースコード

get_hash()の第1引数をsha512などに変更することで、sha1以外のハッシュも求められます。

function get_hash(algorithm, plaintext, encoding) {
        var crypto = require('crypto');
        var hashsum = crypto.createHash(algorithm);
        hashsum.update(plaintext);
        return hashsum.digest(encoding);
}       
function get_sha1(plaintext) {
	return get_hash('sha1', plaintext, 'hex');
}
var data = 'hoge';
var hash = get_sha1(data);
console.log(hash);

実行例

sha1のコマンドと比較した結果、同じ値が求められたことが確認できました。

$ node sha1.js
31f30ddbcb1bf8446576f0e64aa4c88a9f055e3c
$ sha1 -s hoge
SHA1 ("hoge") = 31f30ddbcb1bf8446576f0e64aa4c88a9f055e3c

関連項目




スポンサーリンク