今回はハッシュ値についてまとめてみたいと思います。
目次
ハッシュ値って何?
超簡単に説明しますとハッシュ値とはハッシュ関数を使用して生成される値のことです。
ハッシュ関数 (ハッシュかんすう、英: hash function) あるいは要約関数とは、あるデータが与えられた場合にそのデータを代表する数値を得る操作、または、その様な数値を得るための関数のこと。ハッシュ関数から得られた数値のことを要約値やハッシュ値または単にハッシュという。
ハッシュ関数-wikipediaより-
ハッシュが使われる場所
ハッシュ関数は主に検索の高速化やデータ比較処理の高速化、さらには改竄の検出に使われています。
- データベース内の項目検索や結合キーの生成
- 転送データの改ざん確認
- 電子証明書
など様々なIT技術に利用されています。ちなみにOpenSSLにもハッシュ機能があります。
暗号化ハードウェアアクセラレーションの有効化確認
「暗号化したら性能が落ちた」、「暗号化したらCPU使用率が増加した」なんて事象は多くあると思います。 今回は「使用しているCPUが暗号化ハードウェアアクセラレーショ...
Message Digest Algorithm 5(MD5)系
MD5とは与えられた入力に対して128ビットのハッシュ値を出力するハッシュ関数です。
MD5のハッシュキーの長さは、2128(約 3.403×1038 = 340澗(かん) = 340京の1京倍)通りのハッシュ値のパターンが存在します。
md5のハッシュ値は「md5sum」コマンドで取得します。↓が実行ログになります。
md5sum text.txt
31d3c41ba61f0af7fbb0774a09a7f92b text.txt
Secure Hash Algorithm(SHA)系
SHAは、アメリカ国立標準技術研究所(NIST)によって指定された標準ハッシュ関数Secure Hash Standardに指定されている。
注意点はNISTが「開発」しているのではく、「指定」している点です。
これはNISTが強力かつ実用的なハッシュ関数を募り、その時に最も優れているものがSHA○○となるということです。
ハッシュ値はsha○○の○○が大きくなるほど強力な値になります。
sha1sum
sha1sum text.txt
54477089b641c7905c4c02619310e8e84fbccc28 text.txt
sha224sum
sha224sum text.txt
cf40cc32a639b0c204df93303bbaadb82f060c9470867187d6d375b1 text.txt
sha256sum
sha256sum text.txt
dde94bc1e5847ca65e3454ca410d4bade03333c9aa1795b263f1917c34f65c4b text.txt
sha384sum
sha384sum text.txt
fe04da437e8f75c2557ed16682ac272eac74a0effa9445738f5b401786b4ec57153ae6e1d3e28844a28575b4d8260fb2 text.txt
sha512sum
sha512sum text.txt
3e90b41a61f6cd416e0c3d392df2a54df093cc9f42c0a4b963cb624c57b0ac3ae4f3dcb9f0f43832b9388d10151f0db918eaba8a9f590527ca133ce1d053bf6c text.txt
opensslコマンド
opensslコマンドでもハッシュを取得することができます。
openssl [ハッシュ関数] [ファイル名]
↓が実行ログです。
openssl sha1 text.txt
SHA1(text.txt)= 54477089b641c7905c4c02619310e8e84fbccc28
選べるハッシュ関数は↓になります。
オプション一覧 | ||
---|---|---|
md2 | md5 | mdc2 |
rmd160 | sha | sha1 |
sha224 | sha256 | sha384 |
sha512 |