MD5 ハッシュ生成ツール
任意のテキストの MD5 ハッシュをブラウザー内で即座に生成。入力は UTF-8・16進・Base64、出力は16進または Base64。無料で、アップロードなしのプライベート処理です。
すべてブラウザ内で実行されます。データがアップロードされることはあり ません。
MD5 ハッシュ生成ツールとは?
MD5 は RFC 1321 で定められた128ビットのハッシュで、チェックサム、キャッシュキー、重複排除などに今も広く使われています。このツールは、テキストまたは生のバイト列(16進または Base64)の128ビット MD5 ダイジェストを入力に合わせて計算し、32文字の16進数または Base64 で表示します。
MD5 ハッシュ生成ツールの使い方
- ハッシュ化するテキスト に入力を入力または貼り付けます。入力するたびにダイジェストが更新されます(空欄のときは空入力のハッシュが表示されます)。
- 入力エンコーディング を選びます。テキスト (UTF-8) は文字を UTF-8 としてハッシュ化し、16進数のバイト列 や Base64 はデコードした生のバイト列をハッシュ化します。
- 出力形式(16進の小文字、16進の大文字、Base64)を選び、コピー をクリックします。
例
abc
900150983cd24fb0d6963f7d28e17f72
3バイトの ASCII 文字列「abc」の MD5(UTF-8、16進の小文字で出力)で、標準のテストベクターです。
MD5 ハッシュ生成ツールを使うべき場面
MD5 テキストツールは、文字列のハッシュ化に使います。ドキュメントやコードにある値の再現、テストベクターの作成、API 署名の入力の比較、プログラムが出力すべき値の確認などに向いています。ただし、攻撃者から何かを守る目的では使わないでください。暗号学的に破られています。ダウンロードしたファイルの検証にも向きません。ファイルの内容をテキストボックスにコピーすると改行コードやエンコーディングが変わってしまうため、その場合は MD5 ファイルチェックサムツールを使ってください。攻撃者がデータを与えうる場合は、代わりに SHA-256 を使ってください。
MD5 ハッシュ生成ツールの仕組み
MD5 は、メッセージを512ビットの倍数にパディングし(1ビットの 1、0、64ビットのリトルエンディアンの長さ)、各ブロックを、4つの32ビットワードに対する16ステップ×4ラウンドで処理します。各ステップでは、メッセージのワード、正弦関数から導出した定数、ローテーションが混ぜ込まれます。最終的な状態をリトルエンディアンで並べたものが、128ビット(16進32文字)のダイジェストです。テキストは最初にバイト列(既定では UTF-8)に変換されるため、同じ文字なら常に同じハッシュになります。
一般的な使用例
- ユニットテストやフィクスチャで、文字列に期待される MD5 を確認する
- デバッガー、パケットキャプチャ、プロトコル仕様からコピーした16進バイト列をハッシュ化する
- 結果が食い違う2つのプログラミング言語の MD5 出力を比較する
- テキストから決定的な識別子やキャッシュキーを生成する
- 古いシステムが保存した従来の MD5 値を再現する
セキュリティ注意事項
MD5 はセキュリティ面では破られています。 実用的な衝突攻撃が存在し(2008年の偽造 CA 証明書や Flame マルウェアなど)、異なる2つのファイルが同じ MD5 を持つことがありえます。偶発的な破損の検出にはまだ十分ですが、署名、証明書、パスワードには使わず、SHA-256 や SHA-3 を使ってください。また、素のハッシュはパスワードの保存にも向いていません。Argon2、scrypt、bcrypt のような、低速でソルト付きのパスワードハッシュを使ってください。すべての処理はブラウザー内で行われ、入力した内容がどこかに送信されることはありません。
よくある質問
MD5 ハッシュを復号できますか?
いいえ。ハッシュは暗号化ではないため、復号するものがありません。MD5 を「逆変換」するというサイトは、過去にハッシュ化された文字列の巨大なテーブルからハッシュを検索しているだけで、短い入力やありふれた入力でしか機能しません。
同じテキストなのにツールによって MD5 の値が違うのはなぜですか?
たいていはバイト列が異なるためです。末尾の改行、Windows の改行コード(CRLF)、文字エンコーディングの違いなどが原因です。このツールは、ボックスの内容の UTF-8 バイト列をそのまま、または16進や Base64 入力を選んだ場合は生のバイト列をハッシュ化します。
1文字変えただけでハッシュが大きく変わるのはなぜですか?
すべての暗号学的ハッシュが備えるように設計されたアバランシェ効果によるものです。入力の1ビットを反転すると、128ビットの出力のおよそ半分が変わるため、似た入力でも無関係なダイジェストになります。
末尾のスペースや改行は影響しますか?
はい。ハッシュはすべてのバイトを対象にするため、abc と、abc の後ろに改行が付いたものでは MD5 の値が異なります。入力に、ハッシュ化したいバイトだけが含まれていることを確認してください。