気軽に楽しくプログラムと遊ぶ

自分が興味があってためになるかもって思う情報を提供しています。

ハッシュ化とは?

ハッシュ化は、システム内ではよく使われる処理ですが、
結局どういうものなのってところが説明できなかったので、少しまとめてみます。

概要

  • 固定長のランダムな値に変換すること
  • 暗号化とは異なり、不可逆な変換で、平文に戻すのは極めて困難
  • 同じ文字列であれば、同一のハッシュ値を生成することが可能
  • ファイル内容や長さ、ファイル名に関わらず短い固定長の文字列を生成できる

用途

  • ファイル改ざんチェック
  • パスワードの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/