MD5ジェネレーター

任意の文字列入力から32文字のMD5ハッシュを生成する、信頼性のあるデータハッシュのためのMD5ジェネレーターを使用してください。

3件中5件の評価
MD5ジェネレーター

MD5ジェネレーターは、入力した任意の文字列を32文字のMD5ハッシュに変換する無料ツールです。

MD5とは何ですか?今でも安全ですか?

MD5は128ビットのハッシュ関数です。現在では暗号学的に破られており、セキュリティが重要な用途での使用は推奨されていません。決定論的なため、同じ入力からは常に同じ結果が得られます。また一方向関数なので、通常はフィンガープリントから元のデータを直接算出できません。

MD5は、MD4の後継としてRonald Rivestが1991年に設計しました。128ビットのダイジェストは通常、0から9までの数字とaからfまでの英字を使った32文字の16進数で表示されます。出力がコンパクトで処理も速かったことから、ソフトウェアのダウンロード、データベース、旧式の認証システムで広く使われるようになりました。

2004年には、MD5の衝突を実際に発生させられることが研究者によって実証されました。その後、意図的に内容を変えた文書から同じダイジェストを生成する手法も開発されています。MD5をデジタル署名や証明書に使用してはいけません。攻撃者が衝突を悪用できる状況での完全性チェックにも不適切です。また、処理が速いため、パスワードの保存にも向きません。MD2ジェネレーターとMD4ジェネレーターでは関連する過去のアルゴリズムを扱えますが、どちらも安全な代替手段にはなりません。

図解:入力テキストがMD5関数を通り、元に戻せない固定長のダイジェストが生成される

MD5ハッシュを生成するには?

対象の文字列を正確に入力または貼り付けてジェネレーターを実行し、MD5 Hashに表示された値をコピーしてください。計算はサーバー上でPHPのmd5関数を使って行われます。

  1. MD5ジェネレーターに入力した文字列を確認し、意図しない空白や改行、大文字と小文字の違いがないことを確かめます。
  2. ダイジェストを生成し、結果が32文字の16進数になっていることを確認します。
  3. MD5 Hashに返された32文字すべてを比較または保存してください。一部だけに短縮して使わないでください。
digily.link のMD5ジェネレーターツールと入力フォーム

入力内容はHTTPS経由でサーバーへ送信され、保存されません。それでも、パスワード、秘密鍵、リカバリーコードなどの機密情報は入力しないでください。MD5はこうした情報の保護に適していません。また、サーバー側で処理されるため、入力内容は端末の外部へ送られます。

MD5ハッシュは復号したり元に戻したりできますか?

いいえ、MD5ハッシュは復号できません。ハッシュ化は暗号化ではなく、復号鍵も存在しないためです。ダイジェストには、元の入力を復元できる形のコピーは含まれていません。

ただし、MD5ハッシュが非公開になるわけではありません。攻撃者は入力候補をハッシュ化し、その結果を対象のダイジェストと比較できます。よく使われるパスワード、短い数字、辞書に載っている単語などは、推測や事前計算済みハッシュのデータベースによって特定されることがあります。衝突と逆算は別のものです。衝突では、指定された入力から元の内容を復元するのではなく、同じダイジェストになる異なる2つの入力を見つけます。

MD5ジェネレーターツールが生成した結果の例

MD5を今でも使えるのはどんな場合ですか?

MD5を使うのは、互換性の維持や、攻撃を想定しないチェックサムで明示的に必要な場合に限ってください。衝突耐性を必要としないのであれば、偶発的な変更の検出、重複コンテンツのグループ化、旧式システムの識別子との照合には今でも利用できます。

  • チェックサムは、内部でのファイル転送中に起きた偶発的な破損を検出できますが、そのファイルが正規のものだと証明することはできません。
  • 重複排除では、MD5をコンテンツの初期フィンガープリントとして利用できます。ただし、ダイジェストが一致したという理由だけでデータを削除せず、ファイルサイズや実際の内容も比較してください。
  • レガシーシステムとの互換性を保つため、既存のデータベース、プロトコル、提供元がMD5値しか公開していない場合には、MD5が必要になることがあります。

新しいセキュリティチェックには、SHA-256やSHA-512など、現在利用されている暗号学的ハッシュ関数を使用してください。パスワードには、Argon2id、bcrypt、scryptなど、専用のパスワードハッシュ方式を使います。これらはMD5と異なり、推測を繰り返す処理の負荷が意図的に高くなるよう設計されています。

入力時の注意点

MD5はバイト列をハッシュ化するため、入力された表現に含まれるすべての文字が結果に影響します。helloからは32文字の16進数ダイジェストが生成されますが、Helloでは大文字によって入力バイトが変わるため、別の結果になります。末尾に半角スペースを1つ追加しただけでも結果は変わります。

  • invoice-1042とinvoice-1043からは、互いに関連がないように見える32文字の結果が生成されます。
  • MD5ジェネレーターは、文字列欄に入力された数字をテキストとして扱います。0012と12は異なる入力です。
  • MD5ジェネレーターに入力した句読点、タブ、改行も文字列の一部です。コピーした段落には、目に見えない末尾の改行が含まれている場合があります。
  • アクセント記号付き文字や非ラテン文字のバイト表現は、文字エンコーディングによって変わります。ハッシュを比較するシステム間では、一般的にはUTF-8など、同じエンコーディングを使用してください。
  • MD5自体は空の入力に対してもダイジェストを定義しており、長いバイト列も処理できます。このツールが受け付けるのは文字列入力です。ファイルや無制限の長さの入力に対応しているとは、このページでは案内していません。

よくある質問

MD5の16進数を大文字にするとダイジェストは変わりますか?

いいえ。大文字と小文字の16進数は同じ128ビット値を表せるため、表示されたダイジェスト内のAとaは数値として同じ意味です。ただし、大文字と小文字を区別するデータベースでは、2つの文字列が別のものとして扱われる場合があります。比較前に表記を統一してください。

ソルトを追加すればMD5でパスワードを安全に保存できますか?

いいえ。一意のソルトを使えば、事前計算済みテーブルの単純な再利用は防げますが、MD5はパスワードの保存には処理が速すぎます。ソルトとコスト設定を保存値の一部として記録するパスワードハッシュ関数を使用してください。

異なる2つのファイルが同じMD5ハッシュになることはありますか?

はい。このような一致は衝突と呼ばれ、MD5の衝突を意図的に作り出す実用的な手法が存在します。小規模なファイル群で偶然衝突する可能性は低いものの、悪意のあるデータや価値の高いデータを扱うシステムでは、衝突耐性のある代替手段を使用してください。

同じテキストなのにWindowsとLinuxでハッシュが違うのはなぜですか?

表示上は同じテキストに見えても、ファイルの改行コード、文字エンコーディング、バイトオーダーマークが異なる場合があります。このMD5ジェネレーターの出力を別のMD5結果と比較するときは、文字列入力の文字エンコーディングと改行形式を揃えてください。

MD5ハッシュをSHA-256ハッシュに変換できますか?

32文字のMD5テキストをSHA-256でハッシュ化することはできますが、その結果は元の入力に対するSHA-256ダイジェストにはなりません。正しく移行するには、元のデータを取得し、SHA-256で改めてハッシュ化してください。

最後に確認すること

結果を利用する前に、入力バイトが正確か、32文字すべてを比較しているか、目的が偶発的な破損の検出なのか改ざん対策なのかを確認してください。真正性の確認、パスワード、署名が関係する場合、MD5は適切ではありません。

類似のツール

MD2ジェネレーター

データの整合性検証のために、MD2ジェネレーターを使用して任意の文字列入力からMD2ハッシュを生成します。

5,016
39
MD4ジェネレーター

MD4ジェネレーター・ツールで任意の文字列入力からMD4ハッシュを作成し、安全なデータハッシュ化を実現します。

5,119
43

人気のツール