ハッシュ
注記
このページ「ハッシュ」は、「 ハッシュ値 」のエイリアス(別名ページ)です。
用語
「ハッシュ値」(hash value、ダイジェスト値、digest value、要約値)についての説明です。
説明
ハッシュ値とは何ですか?
ハッシュ値とは、元になるデータから一定の計算手順により求められた固定長の値です。ハッシュ値は、暗号や認証、データ構造などに応用されています。
ハッシュ関数とは何ですか?
ハッシュ関数は、入力データを一定の手順で計算し、入力値のデータの長さに関わらず、決まった長さの文字列を出力する関数です。ハッシュ値を求めるための計算手順のことも「ハッシュ関数」、「要約関数」、「メッセージダイジェスト関数」といいます。
ハッシュ関数はどのような場面で使われますか?
ハッシュ関数は、暗号や認証、データ構造などで使われます。例えば、パスワードの保存では、実際のパスワードを保存するのではなく、ハッシュ値を保存することで、パスワードを漏洩させた場合でも、そのままではパスワードが分からないようにすることができます。
ハッシュ値が同じになる元データは存在するのですか?
ハッシュ関数は、同じ入力に対しては必ず同じハッシュ値を出力しますが、異なる入力に対して同じハッシュ値を出力する「衝突」という現象が起こる可能性があります。ただし、衝突が起こる確率は非常に低いため、実用上は問題になることはほとんどありません。
ハッシュ値を求める計算手順はどのように行われるのですか?
まとめ
「ハッシュ値」(hash value、ダイジェスト値、digest value、要約値)とは、データの内容から一定の計算手順によって求められる固定長の値のことです。
この値は、データの内容によって必ずしも異なる値になります。
ハッシュ値は、主に暗号や認証、データ構造の分野で使われます。
例えば、パスワードをハッシュ値に変換して保存することで、元のパスワードを知らなくても認証ができます。
また、データの改ざんが行われていないかを確認するためにも使われます。
ハッシュ値を求めるための計算手順は、「ハッシュ関数」、「要約関数」、「メッセージダイジェスト関数」などと呼ばれます。
ハッシュ値は、元のデータとは異なる値であり、一方向性があるため、ハッシュ値から元のデータを復元することは非常に困難です。