MD2 ハッシュコード計算機
出版された: 2025年2月16日 22:38:24 UTC
最終更新日 2026年1月12日 9:06:44 UTC
MD2 Hash Code Calculator
MD2(Message Digest 2)ハッシュ関数は、1989年にロナルド・リベストによって設計された暗号ハッシュ関数です。8ビットコンピュータ向けに最適化されています。現在では時代遅れで暗号用途には安全ではないと考えられていますが、後方互換性のあるハッシュコードを計算する必要がある場合に備えて、ここに記載しています。新しいシステムを設計する際には使用しないでください。
完全開示:このページで使われているハッシュ関数の特定の実装を書いたのは私ではない。これはPHPプログラミング言語に含まれる標準関数である。私は便宜上、ウェブ・インターフェースを作成し、ここで一般に利用できるようにしただけである。
MD2ハッシュアルゴリズムについて
簡単な数学はそこそこできるのですが、非常に得意というわけではなく、ましてや数学者だと思っているわけでもありません。そこで、このハッシュ関数の仕組みを数学者以外の人にもわかるように説明しようと思います。本格的な数学バージョンがお好みなら、ウェブ上の他の場所で簡単に見つけることができますよ ;-)
さて、どんな材料(あなたのメッセージ)を使っても、必ず16ピースの小さなチョコレートバー(ハッシュ)1枚になるレシピがあると想像してみてください。材料の種類や大きさに関わらず、必ず同じサイズのチョコレートバーが出来上がります。
このレシピの目標は次のとおりです。
- チョコレートを見ただけでは、その材料を推測することはできません。
- 材料がほんの少し変わるだけでもチョコレートの味は完全に変わるので、誰かが材料やレシピを変えたかどうかはすぐにわかります。
チョコレートバーの作成は、次の 3 つのステップで行われます。
ステップ1:メッセージを詰め込む(材料を合わせる)
ちょうど16個のリンゴ(または食材)が入るバスケットがあるとします。しかし、リンゴが14個しかなかったらどうでしょうか?バスケットを満たすには、あと2個必要です。足りない場合は、リンゴを追加すればいいのです。例えば:
- さらに 2 個必要な場合は、リンゴを 2 個追加します。
- 16個以上の場合は、次のバスケットを埋める必要があります。例えば、28個ある場合は4個加えて32(16の2倍)になります。
これにより、次のステップに進む前にすべてのバスケットがいっぱいになっていることが確認されます。
ステップ2:チェックサムの追加(秘密の材料リスト)
次に、バスケット内のすべてに基づいて秘密の材料リストを作成します。
- それぞれのバスケットを調べて、リンゴを見て、それぞれの秘密のコードを書き留めます。
- これは単なるコピーではありません。奇妙な方法で数字を足し合わせるようなもので、誰かがこっそりと侵入してリンゴを変えたとしても、リストは間違ったものに見えるでしょう。
このリストは、材料が後で変更されていないことを再確認するのに役立ちます。
ステップ3:すべてを混ぜ合わせる(マジックブレンダー)
次は楽しい部分、つまり混ぜる作業です!
- 48 スロットのブレンダーをお持ちです。
- 投入するもの: リンゴ (メッセージ)。以前の混合物 (最初のバッチでは空のまま)。最初の 2 つのものの混合物。
そして、混ぜ合わせます。でも、一度だけではありません。18回混ぜ合わせ、毎回速度と方向を変えます。これは通常の混ぜ合わせとは異なり、毎回特別な方法で混ぜ合わせるため、リンゴが一つ違うだけでもチョコレート全体の味が変わります。
最後のチョコレートバー(ハッシュ)
全てのブレンドが終わったら、上から16個だけ取り出します。これが最終的なチョコレートバー、MD2ハッシュの出来上がりです。オリジナルのリンゴとは全く似ておらず、チョコレートだけから元の材料を推測しようとしても、絶対に無理でしょう。
覚えて:
- 同じ材料 = 同じチョコレート。
- リンゴ1個を変えるだけでも、チョコレートはまったく違ったものになります。
- 後戻りはできません。チョコレートからだけでは、元のリンゴを判別することはできません。
さらに読む
この投稿が気に入った場合は、次の提案も気に入るかもしれません:
