ハッシュ
概要
ハッシュ(Hash)は「細切れや寄せ集め」の意。あるデータを一定の計算手順によって別の値に置き換えたものをハッシュ値という。その計算手順をハッシュ関数という。
具体例
例えば「NTT」という言葉をSHA2(256)というハッシュ関数でハッシュ値を生成すると「e4f6e493336d0219dc816f84cd092c79096b8d710fb14b5df83615ca41d8ff36」になる。
上記の場合、元になるNTTという言葉のデータはアルファベット3文字だが、ハッシュ値は元のデータの長さに関係なく、テキストであれ動画であれプログラムであれ、定まった長さの(小さなサイズの)データになる。また、「同じハッシュ関数を使うと同じハッシュ値になる」「ハッシュ値から元データは復元不可」などの特徴を持っている。
ハッシュ値は元データを極めて短く要約したものと捉えられ、データの比較・照合・検索に使われる。
与えられた検索キーから素早くデータレコードを探索するハッシュテーブルに使われるほか、ダウンロードしたファイルやメッセージの改ざんや破損がないかを確認をする場合、すべてのデータを照合せず短いデータを照合するだけで済むため、確認が一瞬で終了する。この他にもパスワードをハッシュ値に変換して保管することで、パスワード流出のリスクを軽減してパスワードの照合を行える、などの使われ方がされてきた。
ポイント
ハッシュ関数にはMD5やSHA1などの種類が普及していたが、SHA2に比べて桁数が少ないため信頼性や安全性が低いとされ、現在はSHA2が推奨されている。
なお、TwitterなどのSNSで使われる「ハッシュタグ」と直接の関係はない。