ハッシュ — データの指紋(改ざん検知)

初級の解説は準備中のため、初級の内容を表示しています。

概要 — まず全体をつかむ

暗号(戻せる)とは別に、元に戻せない変換がハッシュ。データの「指紋」を作る技術です。

詳細 — 1段階ずつ追う

これは何?

どんな長さのデータも、決まった長さの値(指紋)に変換します。

  • 一方向 — データ → 指紋 は作れるが、指紋 → データ には戻せない
  • 同じ入力は同じ指紋 — 照合に使える
  • 少しでも違えば全く違う指紋 — 改ざんが一目で分かる

代表は SHA-256 など。

アニメーション『ハッシュ=データの指紋』を開く
ハッシュ = データの指紋入力データ(長さは自由)固定長の指紋(ダイジェスト)ハッシュ関数SHA-256 などa3f1…9cハッシュ関数SHA-256 など7b20…e4たった1文字違い→ 指紋は全く別物どんな長さでも→ 固定長入力が1文字でも10万字でも、指紋の長さは常に同じ少し違うと→ 全然違う1文字の違いで指紋が激変。だから改ざんが一目で分かる指紋 → 元データ元データ指紋指紋から元へは戻せない(一方向=暗号化とは別物)

何に使う?

  • 改ざん検知 — 受け取ったデータの指紋を照合し、書き換えを見抜く
  • パスワード保管 — パスワードそのものでなく、指紋を保存(漏れても元が分かりにくい)
  • 重複検出・整合性 — ファイルが同じかを指紋で比較

暗号化と違い「戻す」用途ではなく、「同じか・変わっていないか」を確かめる道具です。

⚠️ 気をつける

  • 暗号化ではない — 秘密にするためではない(戻せない)
  • パスワードはソルト付き — そのままハッシュだと使い回し攻撃に弱い。個別のソルトを足す
  • 古い方式 — MD5・SHA-1は弱い(衝突が見つかった)。SHA-2以降を使う

関連する知識

理解度チェック

そのまま解けます(成績は保存されません)。無料アカウントを作ると、学習の記録と進捗の山登りが始まります。

1. ハッシュが暗号化と決定的に違う点は?

2. ハッシュの性質として正しいのは?

3. ハッシュが改ざん検知に使えるのはなぜ?

4. 同じデータを2回ハッシュすると、その指紋はどうなる?

5. パスワードを「そのまま」ではなく指紋(ハッシュ)で保存する利点は?

6. 現在よく使われる代表的なハッシュはどれ?

7. どんな長さのデータも決まった長さに変換した「指紋」を何と呼ぶ?

8. パスワードをハッシュで保存するとき、使い回し攻撃対策として利用者ごとに足す値を何と呼ぶ?