MD5ハッシュ変換ツール(無料・オンライン)

文字列をMD5ハッシュ値に変換・計算する無料のオンラインツールです。入力するとブラウザ内で即座に計算されサーバー送信は一切ありません。ファイルの整合性チェックや一意識別に便利ですが、衝突攻撃が実証されているためセキュリティ用途には推奨されません。

コピーしました!

MD5ハッシュとは

MD5(Message Digest Algorithm 5)は、任意の長さの文字列から常に128ビット(16進数で32文字)の固定長の値を生成するハッシュ関数です。このツールは入力した文字列をブラウザ内でその場で計算し、サーバーへ送信することなくMD5ハッシュ値を表示します。同じ入力からは常に同じハッシュ値が得られ、1文字でも変われば出力は大きく変化します。

ただしMD5は2004年に衝突攻撃(異なる入力から同一のハッシュ値を作り出す手法)が実証されており、暗号学的な安全性は失われています。パスワードの保存やデジタル署名など、改ざんを防ぐ必要があるセキュリティ用途には使用しないでください。一方で、偶発的なデータ破損の検出やファイルの一致確認といった非セキュリティ用途では、手軽さゆえに今も広く使われています。

MD5ハッシュ計算ツールの使い方

  1. 入力欄に文字列を入力する ハッシュ化したい文字列を入力欄に入力します。入力と同時に計算されるため、送信ボタンを押す必要はありません。
  2. MD5ハッシュ値を確認する 入力欄の下に32文字の16進数として計算結果が表示されます。入力が空の場合は結果欄も空のままになります。
  3. 結果をコピーする 「コピー」ボタンを押すとハッシュ値がクリップボードにコピーされ、他のツールやファイルへそのまま貼り付けられます。
  4. 入力を書き換えて差分を確認する 文字を1つ変えるだけでハッシュ値が全く異なる値になることを確認できます。改ざん検知の原理を体感的に理解できます。

使いこなすためのヒント

  • MD5は1991年にロナルド・リベストが設計した128ビットのハッシュ関数です。2004年に衝突攻撃(異なる入力から同一ハッシュ値を生成)が実証されたため、セキュリティ用途には使用すべきではありません。
  • ダウンロードしたファイルの整合性確認(改ざん検知ではなく偶発的なデータ破損の検出)には今でも広く使われています。配布元が公開するMD5値と手元で計算した値を照合します。
  • パスワードの保存にMD5を使うことは非常に危険です。現代のGPUはMD5を毎秒数百億回計算できるため、短いパスワードは一瞬で解析されます。
  • MD5の出力は常に128ビット(32文字の16進数)です。入力の長さに関わらず常に同じ長さの出力が得られます。
  • パスワード保存にはBCryptやArgon2など、計算コストを意図的に高くした専用アルゴリズムを使用してください。

MD5ハッシュ計算の活用シーン

ダウンロードファイルの整合性確認

配布元が公開しているMD5値と、手元にあるファイルから計算したMD5値を照合し、ダウンロード中の通信エラーなどによる破損が無いかを確認できます。

重複データの検出(デデュープ)

大量のテキストやレコードそれぞれのMD5値を計算し、値が一致するものを重複として検出する用途に使えます。高速に比較できるのが利点です。

旧システムとの互換性確認

レガシーなシステムやAPIがMD5をキー生成やキャッシュ識別子に使用している場合、同じ値になるかを手元で検証する際に利用できます。

学習・検証目的でのハッシュ関数の理解

入力を少し変えるだけで出力が大きく変わる「アバランチ効果」など、ハッシュ関数の基本的な性質を実際に試して学ぶ用途に向いています。

用語集

ハッシュ関数
任意の長さの入力データから、固定長の出力値(ハッシュ値)を生成する関数です。同じ入力からは常に同じ出力が得られる一方向の変換です。
MD5
1991年にロナルド・リベストが設計した、128ビットの出力を持つハッシュ関数です。かつては広く使われましたが、現在は暗号学的な安全性が失われています。
衝突(コリジョン)
異なる2つの入力から同一のハッシュ値が生成される現象です。MD5では2004年に衝突を意図的に作り出す攻撃手法が実証されました。
チェックサム
データの転送や保存の過程で偶発的な破損が起きていないかを確認するための短い値です。MD5は悪意ある改ざんの検知には向きませんが、この用途には現在も使えます。
16進数表記
MD5の計算結果を表すときに使われる、0〜9とa〜fの16文字で数値を表す記法です。このツールでは32文字の16進数として結果を表示します。
ハッシュ値の桁数(128ビット)
MD5が出力する値の長さは常に128ビットで、16進数表記では32文字になります。入力文字列の長さに関わらず、出力の長さは変わりません。
一方向性
ハッシュ値から元の入力文字列を計算によって逆算できない性質です。ただし短い文字列は総当たりで元の値を特定されるおそれがあります。

よくある質問

いいえ、MD5は一方向関数のため、ハッシュ値から元の入力を逆算することは数学的にできません。ただし、短い文字列やよくあるパスワードはレインボーテーブルで検索できてしまうため、パスワードの保護には適しません。

はい、MD5は決定論的なため、同じ入力からは常に同一のハッシュ値が出力されます。大文字・小文字や空白の違いも異なるハッシュ値を生成します。

セキュリティが不要な単純なチェックサム用途であればMD5でも十分ですが、それ以外の用途ではSHA-256を選択してください。SHA-256は衝突攻撃が実証されておらず、現在も安全なハッシュ関数とみなされています。
ツールくん

余談ですが ― MD5の発明者と「壊された」アルゴリズムの軌跡

MD5(Message Digest Algorithm 5)は1991年に暗号学者ロナルド・リベスト(RSA暗号の「R」)によって設計されました。当初は安全なハッシュ関数として普及しましたが、1996年に設計上の弱点が指摘され、2004年に中国の暗号研究者王小雲らが衝突攻撃の実証に成功したことで、セキュリティ用途からの引退が決定的になりました。

2008年にはMD5の衝突攻撃を利用して偽のSSL証明書が作成されたという実例が報告されました。同一MD5ハッシュ値を持つ偽の証明書を作成し中間者攻撃を可能にするという深刻な問題です。これをきっかけに主要ブラウザやCAは証明書へのMD5使用を廃止しました。

現在MD5が残っている主な用途は、セキュリティとは無関係なチェックサム(非セキュリティ用)です。大容量ファイルの転送後に「データが正確に届いたか」を確認する目的には、悪意ある改ざんではなく偶発的なデータ破損の検出であればMD5で十分に機能します。