演習として、MD5 を PHP に実装しようとしています。PHPにはこのための組み込み関数があることは知っていますが、実際のソースを読んで実行し、調査したいと思います。このスクリプトは、適切なセクションのコメントを解除し (メッセージ パディングを有効にするため)、それに応じて配列をフォーマットする (私のバージョンの PHP との互換性のため) 場合にうまく機能することがわかりました。ただし、生成されたハッシュは、正しい長さにもかかわらず、MD5 ではありません。たとえば、長さゼロの文字列の MD5 ハッシュは次のようになります。
d41d8cd98f00b204e9800998ecf8427e
しかし、同じスクリプトによって返されるハッシュは次のとおりです。
85bd946a585af9fd3fb9eda68707c1d8
他の文字列も試しましたが、相関関係はありません。私は MD5 を研究してきたので、MD5 がどのように機能するかについて十分な知識を持っています。私はスクリプトを調査してきましたが、正当なようです。このスクリプトが MD5 を返さない理由を発見するという挑戦のために、私は別の人に叫び声を上げていると思います。