node.jsでハッシュを計算する
提供: Node.js/JavaScript入門
スポンサーリンク
node.jsのcryptoモジュールでハッシュを求めることができます。md4, md5, sha1, sha2(sha224,sha256,sha384,sha512)などのハッシュが求められます。
読み方
- crypto
- くりぷと
- createHash
- くりえいとはっしゅ
- update
- あっぷでーと
- digest
- だいじぇすと
- sha1
- しゃわん
概要
node.jsのcryptoモジュールは、暗号の機能を提供します。 使用するアルゴリズムを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
関連項目
- node.jsでハッシュを計算する
- node.jsで暗号を扱う
ツイート
スポンサーリンク