MD2 ハッシュ生成ツール

任意のテキストの MD2 ハッシュをブラウザー内で即座に生成。入力は UTF-8・16進・Base64、出力は16進または Base64。無料で、アップロードなしのプライベート処理です。

MD2 は暗号学的に破られています(衝突を作成できます)。チェックサムや旧システムとの互換性のためだけに使い、セキュリティ目的には使わないでください。
MD2

すべてブラウザ内で実行されます。データがアップロードされることはありません。

MD2 ハッシュ生成ツールとは?

MD2 は、Ron Rivest が1989年に8ビットマシン向けに設計し、RFC 1319 で規定された128ビットのメッセージダイジェストです。このツールは、テキストまたは生のバイト列(16進または Base64)の128ビット MD2 ダイジェストを入力に合わせて計算し、32文字の16進数または Base64 で表示します。

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

  1. ハッシュ化するテキスト に入力を入力または貼り付けます。入力するたびにダイジェストが更新されます(空欄のときは空入力のハッシュが表示されます)。
  2. 入力エンコーディング を選びます。テキスト (UTF-8) は文字を UTF-8 としてハッシュ化し、16進数のバイト列 や Base64 はデコードした生のバイト列をハッシュ化します。
  3. 出力形式(16進の小文字、16進の大文字、Base64)を選び、コピー をクリックします。

例

入力
abc
出力
da853b0d3f88d99b30283a69e6ded6bb

3バイトの ASCII 文字列「abc」の MD2(UTF-8、16進の小文字で出力)で、標準のテストベクターです。

MD2 ハッシュ生成ツールを使うべき場面

MD2 テキストツールは、文字列のハッシュ化に使います。ドキュメントやコードにある値の再現、テストベクターの作成、API 署名の入力の比較、プログラムが出力すべき値の確認などに向いています。ただし、攻撃者から何かを守る目的では使わないでください。暗号学的に破られています。ダウンロードしたファイルの検証にも向きません。ファイルの内容をテキストボックスにコピーすると改行コードやエンコーディングが変わってしまうため、その場合は MD2 ファイルチェックサムツールを使ってください。新規の用途には SHA-256 や SHA3-256 を使ってください。

MD2 ハッシュ生成ツールの仕組み

MD2 は、メッセージを16バイトの倍数にパディングし(各パディングバイトの値はパディングバイトの数と等しくなります)、円周率の桁から導出した置換表で計算した16バイトのチェックサムを付け加えます。その後、16バイトのブロックごとに、同じ S-box を使って48バイトの状態に対し18ラウンドの処理を行います。状態の先頭16バイトが128ビットのダイジェストです。バイト単位の処理で、現代的なハッシュと比べると非常に低速です。テキストは最初にバイト列(既定では UTF-8)に変換されるため、同じ文字なら常に同じハッシュになります。

一般的な使用例

  • ユニットテストやフィクスチャで、文字列に期待される MD2 を確認する
  • デバッガー、パケットキャプチャ、プロトコル仕様からコピーした16進バイト列をハッシュ化する
  • 結果が食い違う2つのプログラミング言語の MD2 出力を比較する
  • テキストから決定的な識別子やキャッシュキーを生成する
  • 古いシステムが保存した従来の MD2 値を再現する

セキュリティ注意事項

MD2 は時代遅れで安全ではありません。 プリイメージ攻撃と衝突攻撃が知られています(RFC 6149 は MD2 を Historic ステータスに移しました)。古い X.509 証明書のような従来システムの値を再現または確認する目的だけに使い、署名、パスワード、攻撃者に対する整合性確認には決して使わないでください。また、素のハッシュはパスワードの保存にも向いていません。Argon2、scrypt、bcrypt のような、低速でソルト付きのパスワードハッシュを使ってください。すべての処理はブラウザー内で行われ、入力した内容がどこかに送信されることはありません。

よくある質問

なぜ今でも MD2 を使う人がいるのですか?

主に古いデータを検証するためです。1990年代の古い X.509 証明書や PKCS#1 署名の一部は md2WithRSAEncryption を使っていました。今日、そうした値の再現が唯一現実的な用途です。

MD2 は MD4 や MD5 と同じですか?

いいえ。128ビットの出力サイズと設計者は共通ですが、MD2 は円周率ベースの S-box を使った、まったく異なるバイト指向の構造です。同じ入力でも無関係なダイジェストになります。abc は MD2 では da853b0d…、MD5 では 900150983c… です。

1文字変えただけでハッシュが大きく変わるのはなぜですか?

すべての暗号学的ハッシュが備えるように設計されたアバランシェ効果によるものです。入力の1ビットを反転すると、128ビットの出力のおよそ半分が変わるため、似た入力でも無関係なダイジェストになります。

末尾のスペースや改行は影響しますか?

はい。ハッシュはすべてのバイトを対象にするため、abc と、abc の後ろに改行が付いたものでは MD2 の値が異なります。入力に、ハッシュ化したいバイトだけが含まれていることを確認してください。

他のカテゴリを見る