ハッシュ関数の基礎 — MD5・SHA-1・SHA-256・SHA-512の使い分け
ハッシュ関数は任意のデータから固定長のハッシュ値(ダイジェスト)を生成する一方向関数です。パスワード管理・ファイル整合性検証・デジタル署名など、セキュリティの根幹を担う技術です。
MD5・SHA-1はなぜ非推奨なのか
MD5はハッシュ衝突(異なるデータが同じハッシュになる)が発見されており、セキュリティ用途には使えません。SHA-1も2017年にGoogleが衝突攻撃を実証し、現在は非推奨です。ただしファイルチェックサムの確認など、攻撃者が介在しない場面では引き続き使われています。
SHA-256とSHA-512の違い
SHA-256は256ビット(64文字の16進数)のハッシュを生成し、現在最も広く使われているアルゴリズムです。SHA-512は512ビット(128文字)で、より衝突耐性が高く64ビット演算が最適化されているため64ビットCPUでは高速です。TLS証明書・Git・ブロックチェーンなど多くのシステムがSHA-256を採用しています。
ファイルの整合性検証
ソフトウェアのダウンロードページではSHA-256のチェックサムが公開されることが多く、ダウンロードしたファイルが改ざんされていないか確認するために使います。Hash Studioではファイルをドロップするだけでハッシュ値を生成し、既知のハッシュ値との一致を確認(Verify)できます。
パスワードのハッシュ化について
パスワードを平文でDBに保存するのは危険であるため、ハッシュ化して保存します。ただし単純なSHA-256ハッシュではレインボーテーブル攻撃に弱いため、bcrypt・Argon2・scryptなどのパスワード専用のハッシュ関数とソルト(ランダムな付加値)を使うべきです。Hash StudioはファイルのMD5確認など一般用途向けのツールです。