ハッシュ関数(Hashing)
ハッシュ関数とは、ひとことで言えば、任意の長さのデータから固定長の一意なダイジェスト値(ハッシュ値)を生成する一方向性の数学的関数です。たとえば、SHA-256は入力データのサイズにかかわらず常に256ビットのハッシュ値を出力し、元データが1ビットでも変わるとハッシュ値は全く異なるものになります。パスワードの保存、ファイルの改ざん検知、デジタル署名の基盤として広く使われています。暗号化と異なり、ハッシュ値から元のデータを復元することはできない(不可逆性)点が本質的な違いです。安全なハッシュ関数の要件は、衝突耐性(異なる入力から同じハッシュ値が生成されにくい)と、原像攻撃耐性です。MD5やSHA-1は脆弱性が発見されており、現在はSHA-256以上が推奨されます。

