ハッシュ化
データから固定長の値を生成する処理。パスワード保存や改ざん検知などで使われる。
概要
ハッシュ化は、データから固定長の値を生成する処理です。
同じ入力からは同じハッシュ値が得られますが、ハッシュ値から元のデータを戻すことは基本的にできません。
何に使うか
- パスワード保存
- 改ざん検知
- ファイルの同一性確認
- データの要約値の作成
暗号化との違い
暗号化は、鍵があれば元に戻せます。 ハッシュ化は、元に戻すことを目的にしていません。
そのため、パスワードを保存するときは、平文保存や復号可能な暗号化ではなく、パスワード用のハッシュ化を使うのが基本です。
実装で見る観点
- パスワードを平文で保存していないか
- 汎用ハッシュ関数をそのままパスワード保存に使っていないか
- salt を使っているか
- パスワード用のハッシュ方式を使っているか
- ログやエラーにパスワードが出ていないか
パスワードの登録とログイン処理への組み込み方は、Webアプリの認証機能を実装するで整理しています。
関連する概念
- salt
- パスワードハッシュ
- 暗号化
- 改ざん検知
- 認証
更新履歴
- 認証機能の実装ガイドへの導線を追加
- 初版作成