ハッシュ関数 (Hash Function) とは任意長のバイナリデータから数十~数百 ビット程度の固定長バイナリを算出する関数です。古くから CRC のようなアルゴリズムが 誤り検出の用途で使用されてきましたが、暗号 などのセキュリティで使用されるハッシュ関数はような特徴を持ちます。 同じバイナリデータに対して常に同じ値が算出される。 異なるバイナリデータに対して同じ値が算出される (衝突) 確率が極めて低い。 算出された値から元のバイナリデータの推測が極めて難しい。 最近ではマシンパフォーマンスの向上もあって、セキュリティの用途で使用できる強い ハッシュ関数がバイナリデータの誤り検出や同一性検証 (インデックス付け) などにも 使用されています。 Java で使用できる ハッシュアルゴリズム には Message Digest と SHA があります。誤り検出の用途であればツール等にも