「パスワードはハッシュ化して保存してください」

この言い回し、最初は暗号化の仲間っぽく聞こえますよね。私も昔は「とりあえず難しくして隠すやつかな」と思っていました。半分だけ合っていますが、大事な違いがあります。

結論から言うと、ハッシュ化は、元のデータをそのまま取り出さない前提で、照合用の値に変えることです。

ハッシュ化とは? 一言でいうと「照合用の指紋を作ること」

一言でいうと、ハッシュ化は照合用の指紋を作ることです。

人の指紋を見ると、本人確認には使えますが、指紋だけから元の顔をそのまま再現することはしませんよね。ハッシュ化もそれに近く、元の文字列から特徴的な値を作り、同じデータかどうかの確認に使います。

たとえば、同じパスワードを入れれば同じハッシュ値になります。違うパスワードなら、別のハッシュ値になります。だから、サービス側は元のパスワードを保存しなくても、入力された値が正しいかを照合できます。

ハッシュ化が使われる場面

ハッシュ化は、主に次のような場面で使われます。

  • パスワードをそのまま保存したくないとき
  • ファイルが改ざんされていないか確認したいとき
  • 同じデータかどうかを効率よく比べたいとき

ここで大切なのは、あとで元のデータを読むための技術ではないことです。

ビジネスの現場でハッシュ化という言葉が出る場面

1. 「パスワードは平文ではなくハッシュ化して保存します」

意味: パスワードをそのまま読める形では持たず、漏えい時の被害を抑えたい、という設計です。

相手が伝えたいこと: 管理者ですら、利用者の元のパスワードをそのまま見られないようにしたい、ということです。

2. 「このファイルのハッシュ値を確認してください」

意味: 受け取ったファイルが途中で書き換えられていないか確認したい、という話です。

相手が伝えたいこと: 配布した元ファイルと同じ内容かどうかを照合したい、ということです。

3. 「暗号化とハッシュ化は用途が違います」

意味: どちらもセキュリティ用語ですが、使いどころを混同しないでほしい、という説明です。

相手が伝えたいこと: 読めなくしたいのか、照合したいのかで選ぶ技術が変わる、ということです。

ハッシュ化と暗号化の違い

比較ポイントハッシュ化暗号化
元に戻せるか元に戻す前提ではない鍵があれば戻せる
主な目的照合、改ざん確認、パスワード保存内容を守ったまま送る、保存する
たとえ話指紋を取る鍵付きの箱に入れる
よく使う場面ログイン認証、ファイル確認通信、添付ファイル、端末保護

暗号化は「中身を隠して、あとで読む」ためのものです。ハッシュ化は「同じかどうかを確かめる」ためのものです。

よくある質問

ハッシュ化したら、なぜログイン確認ができるのですか?

入力されたパスワードをその場で同じ方法でハッシュ化し、保存済みのハッシュ値と一致するかを見れば確認できます。元の文字列を取り出す必要はありません。

ハッシュ化すれば絶対に安全ですか?

絶対ではありません。アルゴリズムや運用、ソルトの有無なども重要です。ただし、平文保存よりは大きく安全性を上げやすいです。

暗号化して保存するのではだめですか?

用途によります。あとで元の内容を読む必要があるなら暗号化が向いています。パスワードのように、読めなくてよいものはハッシュ化が向いています。

関連記事

まとめ

  • ハッシュ化は、元のデータをそのまま取り出さない前提で照合用の値を作ることです。
  • パスワード保存や改ざん確認でよく使われます。
  • 暗号化と違って、あとで内容を読むための技術ではありません。

明日からできる第一歩は、「隠したいのか、照合したいのか」を意識して用語を聞くことです。そこが分かると、暗号化とハッシュ化の混同がかなり減ります。