ハッシュ化は暗号化ではない
ハッシュを「元に戻せる、ただスクランブルされたデータ」だと誤解しがちだが、実際にはハッシュ値を入力に戻す鍵や手順は存在しない。だからこそハッシュはデータを「後で取り戻す」ためではなく、「2つが一致するかどうかを検証する」ために使われる。
パスワードには単純なハッシュだけでは不十分な理由
パスワードの生のSHA-256ハッシュを保存するだけでは、同じパスワードが常に同じハッシュになる性質を突いたレインボーテーブルや総当たり攻撃に弱い。実際のパスワード保存システムはユーザーごとにランダムな「ソルト」を加え、bcryptやArgon2のように意図的に処理を遅くしたアルゴリズムを使う。SHA-256のような汎用の高速ハッシュはこの用途には向いていない。
よくある質問
2つのファイルのハッシュ値が同じなら、その2つは確実に同一ですか?
SHA-256・SHA-384・SHA-512であれば、実用上はイエスと言ってよく、偶然の衝突が起きる確率は天文学的に低い。一方SHA-1は意図的な衝突が実際に作られた実績があるため、セキュリティが重要な整合性チェックには使うべきではない。
ダウンロードしたファイルが壊れていないか確認するのにハッシュ生成器は使えますか?
はい、これはハッシュの最も一般的で正当な用途の一つ。配布元が提示するハッシュ値と、自分の手元のファイルから生成したハッシュ値を比較し、一致すれば転送中に改ざん・破損していないことが確認できる。