概要
ハッシュ化とは、データを一定の規則に従って固定長の文字列(ハッシュ値)に変換する処理のことです。
暗号学的手法を用いる場合が多く、同じ入力からは必ず同じハッシュ値が得られますが、
逆にハッシュ値から元のデータを復元することは基本的にできません。
パスワードの保存やデータの整合性確認などで広く利用されています。
正式名称
Hashing(ハッシング)
略称
特になし
特徴
- 入力が同じなら出力(ハッシュ値)も必ず同じになる
- 出力は固定長(例:SHA-256 は 64 文字の16進数)
- わずかな入力の違いでも全く異なる値が出力される(雪崩効果)
- 元のデータに戻せない(不可逆性)
- 衝突(異なる入力が同じハッシュ値になる現象)は起こりうるが、確率は極めて低い
- セキュリティ分野だけでなく、検索・データ検証・分散処理など幅広い用途で使われる
具体例
- パスワード保存
- ユーザーが入力したパスワードをそのまま保存せず、ハッシュ化してデータベースに保存。
ログイン時は入力を同じ関数でハッシュ化し、保存済みの値と比較して認証する。
- ユーザーが入力したパスワードをそのまま保存せず、ハッシュ化してデータベースに保存。
- データ整合性の確認
- ファイルのハッシュ値(MD5やSHA-256)を比較することで、改ざんや破損がないかをチェックできる。
- ブロックチェーン
- 取引データをまとめたブロックの識別にハッシュが利用され、データ改ざんを困難にしている。
関連用語
用語 | 解説 |
---|---|
暗号化 | ハッシュ化とは異なり、元のデータを復号できる |
ソルト(Salt) | パスワードハッシュに付加するランダムな値。 総当たり攻撃(レインボーテーブル攻撃)対策 |
SHA(Secure Hash Algorithm) | 代表的なハッシュ関数 |
MD5 | 古くからあるハッシュ関数。 現在はセキュリティ用途では非推奨 |
雪崩効果 | 入力の一部が変わると出力が大きく変化する性質 |