MD5 はソフトウェア業界ではよく使われる言葉で、使ったことがなくても、それが何であるか知らなくても、聞いたことはあるはずです。
それでは、MD5 とは何でしょうか?暗号化アルゴリズムですか?いいえ、md5 は情報ダイジェスト アルゴリズム であり、特定のルールに従って文字列またはファイルから特別な文字列を生成できます (この特別な文字列はダイジェストと呼ばれ、何らかの情報を抽出して処理されると理解しています)ファイルのフラグメント)、ファイルに対応する MD5 ダイジェストは固定されており、ファイルの内容が変更されると、その MD5 値は異なります (理論的には同じである可能性がありますが、確率は非常に小さい)。 value は、データの一部が改ざんされているかどうかを確認するためにアプリケーションでよく使用されます。
たとえば、データの送信者は元のデータから MD5 値を生成し、元のデータとその MD5 値を受信者に送信します。受信したデータを受信した後、最初に元のデータが生成されますMD5 アルゴリズムを使用して要約情報を取得し、この要約情報と送信者が送信した要約情報を比較し、一致する場合は元のデータが変更されていないと見なし、そうでない場合は元のデータが変更されているとみなします。
MD5 値にはいくつかの特徴があります:
1. これは固定長のデータ、つまり「0」で構成される 128 ビットのバイナリ セグメントです。と「1」データ。元のデータの長短に関係なく、MD5 値は 128bit です。
2. 通常 (または業界の規制により)、この 128 ビットのデータは 4 ビットごとに 32 のグループに分割され、各グループの値が 16 進数で計算され、各グループが文字の形式で出力されます。たとえば、16 進数のデータの計算値は 0 ~ 9 で、印刷される値も 0 ~ 9 です。計算値が a ~ f の場合、直接印刷すると 10 ~ 15 になります。文字列が使用できます。 Java では.format("したがって、通常 MD5 値と呼ばれるものは、「0 ~ 9、a ~ f」で構成されるこの 32 ビット文字列を指します。 32 ビットではない MD5 が表示された場合、または「0~f」以外の文字が含まれている場合は、MD5 値が間違っている可能性があります。
3. 決定性 元データの MD5 値は一意であり、同じ元データに対して複数の異なる MD5 値を計算することは不可能です。
4. 衝突 元データとその MD5 値が 1 対 1 に対応していない、複数の元データから計算された MD5 値が同じになる可能性があります。これが衝突です。
5.元に戻せません。つまり、MD5 値を知らされた場合、その値を使用して元のデータを復元することはできません。これは、テクノロジーが十分ではないためではなく、そのアルゴリズムが原因です。ポイント 4 によると、特定の MD5 値は複数のオリジナル データに対応する可能性があり、理論的には無限のオリジナル データに対応する可能性があるため、どのオリジナル データが生成されたかを判断することは不可能です。
以上がMD5とは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。