MCPで接続 →

計算を入力してください

公式

広告

結果

MD5ハッシュ値(128ビット)
d41d8cd98f00b204e9800998ecf8427e
16進数32文字
入力の長さ(文字数) 0
入力サイズ(UTF-8バイト数) 0

MD5ハッシュ計算ツールとは?

MD5ハッシュ計算ツールは、入力した任意のテキストから128ビットのMD5メッセージダイジェストを生成します。MD5(Message-Digest Algorithm 5、RFC 1321で定義)は、任意の長さの入力を受け取り、固定長32文字の16進「フィンガープリント(指紋)」を出力するアルゴリズムです。同じ入力からは必ず同じハッシュ値が得られますが、たった1文字でも変えると、まったく異なる結果になります。

使い方

入力欄にテキストを入力または貼り付けて実行してください。本ツールはテキストをUTF-8バイト列としてエンコードし、MD5アルゴリズムを適用して、小文字の16進ダイジェストを返します。あわせて、入力の文字数とUTF-8でのバイトサイズも表示されます。入力欄を空のままにすると、有名な「空文字列のハッシュ値」を確認できます。

計算の仕組み

MD5はマークル・ダンガード構造(Merkle–Damgård construction)に基づいています。まずメッセージに1バイトの0x80を付加し、続いて長さが64で割って56余る(56 mod 64バイト)になるまでゼロを埋め、最後に元のビット長を64ビットのリトルエンディアン値として追加します。パディング済みのメッセージは512ビットのブロックに分割され、各ブロックは4ラウンド・計64回の演算で処理されます。この処理には非線形関数、sin関数から導かれるステップごとの定数、そして左ローテーション(左循環シフト)が用いられます。32ビットの状態ワード4つ(A・B・C・D)は固定の初期値で初期化され、ブロックごとに更新されていきます。最終的にこれらをリトルエンディアンで連結したものがダイジェストとなります。

$$\text{MD5}\!\left(\text{Text}\right) = \text{Hex}_{128}\big(A \Vert B \Vert C \Vert D\big)$$

Flow diagram of MD5 processing message blocks into a 128-bit digest
MD5 pads the message and processes 512-bit blocks through four rounds to update state words A, B, C, D.

計算例

空文字列("")はバイト数が0です。パディング後は1つの512ビットブロックとなり、MD5はd41d8cd98f00b204e9800998ecf8427eを返します。テキスト「hello」(5バイト)のハッシュ値は5d41402abc4b2a76b9719d911017c592です。

Diagram showing four 32-bit words concatenated and reordered little-endian into a 32-character hex digest
The four 32-bit registers are concatenated and output in little-endian byte order as a 32-character hexadecimal string.

よくある質問(FAQ)

MD5は安全ですか? いいえ、安全ではありません。MD5は暗号学的にすでに破られており、衝突(同じハッシュ値になる別データ)を容易に生成できます。利用はチェックサムやセキュリティ目的でないフィンガープリントに限り、パスワードや電子署名には使わないでください。

バイト数と文字数が違うのはなぜですか? ASCII以外の文字はUTF-8で1バイトを超えるため、たとえば絵文字3文字の文字列でも数バイトになることがあります。

大文字・小文字は結果に影響しますか? はい、影響します。「Hello」と「hello」では、まったく異なるハッシュ値になります。

最終更新: