ハッシュ(関数)とは
概要
ハッシュとは、ハッシュ関数と呼ばれる計算式により元データを特定桁数の値に変換すること。
例えば、文字列や画像データなどのファイルをSHA256と呼ばれるハッシュ関数に入力すると、256bitのハッシュ値が出力される。
ハッシュ関数の特徴
- 入力データにかかわらず必ず決まった桁数のハッシュ値を出力
- 入力データが異なれば、ハッシュ値は原則異なる。
理論上は異なる入力データのハッシュ値が一致してしまう可能性はゼロではない(一致してしまうことを衝突という)。ただし現在主流のSHA256で衝突が発生する確率は「2の128乗分の1」であり、普段利用においては実質ゼロと言ってもよい。 - ハッシュ値から入力データを導き出すことは非常に困難
ハッシュ関数の種類
- MD5, SHA1, SHA2, SHA3などが存在するが、MD5とSHA1は脆弱性が見つかっており、現在主流なのはSHA2 (Secure Hash Algorithm 2)。
- SHA2の中でもSHA256が現在最もよく使われている。
- 企業や個人が独自にハッシュ関数を作成することもある。
ハッシュ関数の利用用途
- デジタル署名
元データ(例 電子メール)のハッシュ値を暗号して、元データの改ざん検知や差出人の検証を行う。 - データ破損の有無チェック
ファイルなどのデータを破損せずにダウンロードできているかをダウンロード元とダウンロード後のハッシュ値を比較することにより行う。 - サーバー/クライアント間のパスワードをハッシュ値でやりとり
クライアントからサーバーへログインパスワードを登録・ログインする際にパスワードそのものではなくパスワードのハッシュ値をやりとりすることにより、外部へのパスワード漏洩を防ぐことができる。 - ハッシュテーブル
複数のデータを格納する際に、それぞれのデータのハッシュ値をインデックスとしたテーブル
ハッシュ関数の利用方法
WindowsOS搭載PCであれば一般的なハッシュ関数の計算ツールは標準搭載されており、またハッシュ関数サービスを提供するWebサイトも存在。

引用:https://atmarkit.itmedia.co.jp/ait/articles/0507/30/news017.html