ハッシュ化は、システム内ではよく使われる処理ですが、
結局どういうものなのってところが説明できなかったので、少しまとめてみます。
概要
- 固定長のランダムな値に変換すること
- 暗号化とは異なり、不可逆な変換で、平文に戻すのは極めて困難
- 同じ文字列であれば、同一のハッシュ値を生成することが可能
- ファイル内容や長さ、ファイル名に関わらず短い固定長の文字列を生成できる
用途
- ファイル改ざんチェック
- パスワードのDB管理
ハッシュ化アルゴリズム
- md5 (32桁) 攻撃性されることない範囲での同一性チェックには最適
- SHA-1 (40桁) やや脆弱
- SHA-2(SHA-256,SHA-512) (64桁、128桁) セキュリティ性は十分に高い
- SHA-3 (64桁、128桁)
- CRC32 (8桁) セキュリティ性は皆無。改ざんチェックやパスワードハッシュに使ってはいけない
生成ハッシュ値の桁数が少ないアルゴリズムでは、高いセキュリティを担保できないが、
セキュリティが求められない場合は、桁数が短いものを選んでも良い。
短すぎると重複してしまう可能性はあるので、その点は注意。
ハッシュ値生成ツール
実際にハッシュ値ってどんな値になるのかを確認したい場合は、以下で試してみるとわかりやすい。
SHA2/SHA1/MD5ハッシュ生成(Hash Generator)
https://tool-taro.com/hash/