本文へスキップ
Case Converter Online
ja

MD5 ハッシュ生成ツール

テキストやファイルの MD5 ハッシュを、SHA-1、SHA-256、SHA-512 と一緒に計算します。既知のチェックサムを貼り付ければ、ダウンロードしたファイルが壊れていないかを確認できます。

ハッシュ化する対象

テキストは入力したとおりに UTF-8 でハッシュ化されます。末尾にスペースや改行が1つあるだけでハッシュが変わります。

ハッシュ

  • MD5
     
  • SHA-1
     
  • SHA-256
     
  • SHA-512
     

チェックサムを貼り付けると、ダウンロードしたファイルやコピーしたファイルを確認できます。

MD5 はチェックサムや変更されたファイルの確認には十分使えます。ただし、意図的に衝突を作れるため、パスワードや署名には安全ではありません。セキュリティ用途には SHA-256 以上を使ってください。

MD5 ハッシュとは

MD5 はハッシュ関数です。1文字から大きなファイルまで、どんな入力からでも128ビットの固定長の指紋を作ります。通常は32文字の16進数で書き表します。同じ入力からは必ず同じハッシュが得られます。1文字でも変わると、まったく違うハッシュになります。

MD5 は1992年に Ron Rivest が発表しました。現在でも、ダウンロードページのチェックサム、重複ファイルの発見、キャッシュのキー、手軽な変更検知などでよく使われています。ただし、もはや安全とはみなされていません。この点については後で説明します。

MD5 ハッシュ生成ツールの使い方

テキストをハッシュ化する。 「ハッシュ化する対象」で「テキスト」を選んだまま、欄に入力するか貼り付けます。入力に合わせてハッシュが更新されます。テキストは、スペースや改行も含めて入力したとおりに UTF-8 でハッシュ化されます。

ファイルをハッシュ化する。 「ファイル」を押し、500 MB までのファイルを選びます。ファイルは端末の中で読み込まれます。ハッシュの準備ができると、ファイル名とバイト単位のサイズが表示されます。

結果を確認する。 「ハッシュ」パネルには4つの結果が表示されます。

  • MD5:強調表示、16進数32文字
  • SHA-1:40文字
  • SHA-256:64文字
  • SHA-512:128文字

それぞれに「コピー」ボタンがあります。大文字が必要な場合は「大文字」を押してください。

既知のハッシュと比較する。 ダウンロードページに載っているチェックサムをこの欄に貼り付けます。ツールが4つの結果すべてと照合し、どれと一致するかを表示します。どれとも一致しない場合は、ハッシュの長さからどのアルゴリズムらしいかを表示します。

MD5 の仕組み

MD5 は、入力を512ビットの倍数になるまで埋め、ブロックごとに処理します。各ブロックは、加算、ローテート、論理演算を組み合わせた64ラウンドのビット攪拌を通ります。最後に残った4つの32ビットワードの状態がハッシュになります。これだけ攪拌されるため、出力はランダムに見え、入力のどこか1ビットが変わるだけで全体が変わります。これを雪崩効果と呼びます。

ハッシュの例

入力 MD5
(空) d41d8cd98f00b204e9800998ecf8427e
abc 900150983cd24fb0d6963f7d28e17f72
hello 5d41402abc4b2a76b9719d911017c592
Hello 8b1a9953c4611296a827abf8c47804d7
Hello, World! 65a8e27d8879283831b664bd8b7f0ad4
The quick brown fox jumps over the lazy dog 9e107d9d372bb6826bd81d3542a419d6
The quick brown fox jumps over the lazy dog. e4d909c290d0fb1ca068ffaddf22cbd0

最後の2行の違いはピリオド1つだけですが、ハッシュには共通点がまったくありません。日本語も UTF-8 のバイトとしてハッシュ化されます。たとえば こんにちは の MD5 は c0e89a293bd36c7a768e4e9d2c5475a8 です。

同じ入力 abc を、ほかのアルゴリズムでハッシュ化した結果です。

アルゴリズム abc のハッシュ
SHA-1 a9993e364706816aba3e25717850c26c9cd0d89d
SHA-256 ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad

セキュリティ:MD5 に向いている用途と向いていない用途

向いている用途: ファイルが破損せずに届いたかの確認、重複ファイルの発見、キャッシュのキー作成、セキュリティに関係しない ID。

向いていない用途: パスワード、デジタル署名、証明書、そして悪意のある第三者がファイルを改ざんしていないことの証明。MD5 に対する実用的な衝突攻撃は2004年から公開されています。攻撃者は、同じ MD5 を持つ2つの異なるファイルを作れます。

パスワードには低速なハッシュが必要です。 SHA-256 でさえ、パスワードには速すぎます。推測を遅らせるように設計された bcrypt、scrypt、Argon2 を使ってください。5f4dcc3b5aa765d61d8327deb882cf99(「password」という単語)のような単純な MD5 のパスワードハッシュは、照合サイトに入れればすぐに判明します。

そのほかの MD5 ハッシュの求め方

Linux。 md5sum file.zip でハッシュとファイル名が表示されます。echo -n hello | md5sum でテキストをハッシュ化できます。-n を付け忘れると改行までハッシュ化されます。

macOS。 md5 file.zip、テキストなら md5 -s hello です。

Windows。 コマンドプロンプトでは certutil -hashfile file.zip MD5、PowerShell では Get-FileHash file.zip -Algorithm MD5 を使います。

Python。 hashlib.md5(b'hello').hexdigest() は 5d41402abc4b2a76b9719d911017c592 を返します。

Node.js。 require('crypto').createHash('md5').update('hello').digest('hex') でも同じ値になります。

関連ツール

ハッシュではなくパスワードが必要なら、強力なパスワード生成ツールを使ってください。一意の ID が欲しい場合は、ランダムなデータをハッシュ化するより UUID 生成ツールの方が適しています。バイナリデータをテキストとして表すには、Base64 エンコード・デコードをご覧ください。

MD5 ハッシュ生成のよくある質問

MD5 ハッシュは復号できますか?

できません。ハッシュは一方向の指紋のようなもので、暗号化ではないため、復号するものが存在しません。MD5 を元に戻せるとうたうサイトは、よく使われる単語や流出したパスワードのハッシュを集めた巨大な一覧から照合しているだけです。だからこそ、パスワードの保存に MD5 を使ってはいけません。

MD5 は安全に使えますか?

ファイルが壊れずにコピーやダウンロードできたかを確認する用途なら問題ありません。攻撃者に狙われる可能性がある用途には向きません。研究者は同じ MD5 を持つ2つの異なるファイルを作れますし、単純な MD5 のパスワードハッシュはすぐに解読されます。重要な改ざんチェックには SHA-256 を、パスワードには bcrypt、scrypt、Argon2 などの低速なパスワード用ハッシュを使ってください。

ほかのツールと MD5 の値が違うのはなぜですか?

ハッシュは、入力がほんの少し変わるだけでまったく別の値になります。よくある原因は、末尾のスペースや改行、大文字と小文字の違い、別の文字コードで保存されたテキストです。hello の MD5 は 5d41402abc4b2a76b9719d911017c592 ですが、後ろにスペースが1つ付いた hello は f814893777bcc2295fff05f00e508da6 です。日本語の場合は、UTF-8 と Shift_JIS でバイトが異なるため、同じ文字でもハッシュが変わります。

ダウンロードしたファイルを検証するには?

「ハッシュ化する対象」で「ファイル」を選び、ダウンロードしたファイルを指定します。配布元が公開しているチェックサムを「既知のハッシュと比較」欄に貼り付けてください。ファイルの MD5、SHA-1、SHA-256、SHA-512 のどれと一致するかが表示されます。

ファイルはアップロードされますか?

いいえ。テキストもファイルも、ブラウザの中でハッシュ化されます。MD5 は JavaScript のライブラリで、SHA 系のハッシュはブラウザに組み込まれた Web Crypto API で計算します。

その他のコード・データツール

すべてのツールを見る