健全性検査MD5および

健全性検査MD5および

MD5チェックサムにチェック数字が含まれていますか?

一部のMD5チェックサムを手動でコピーする必要があり(他の方法はありません)、クレジットカード番号のようにチェックサムが有効であることを確認できるコードがあるかどうか疑問に思います。

明らかに、私は与えられた合計と比較できるようにファイルからMD5合計を生成する方法を尋ねるのではなく、それを確認することができるか(そして可能かどうか疑問です)尋ねています。 MD5の合計は実際のMD5の合計です。実際に合計を生成するために使用されたバイトへの参照はありません。

可能なスペルエラーを見つけたいです。

答え1

実際には暗号ハッシュ設計標準(MD5の目標)の結果です。いいえこんなことです。

理想的な128ビット暗号化ハッシュにファイルを供給すると、次のことができます。いいえ予測するどのハッシュを実行することに加えて、128ビット出力(または2つの関係)を理解することが可能です。可能であれば、実際には128ビットハッシュを取得できません。たとえば、ハッシュにパリティビット(1の総数が常に奇数[奇数パリティ]または常に偶数[偶数パリティ]のビット)を持つ場合、実際には127ビットハッシュがあります。

ミスが誤って有効なハッシュを生成しないようにするには、それを検出する確率が50/50より高くなければなりません。したがって、より多くのビットが失われます。

問題は、128ビットハッシュが欲しいということです。通常、追加のビットが必要です。ダブルスハッシュを攻撃するのに必要な作業です。

冗長性がハッシュ設計の一部である場合は、4ビットCRCなどを使用して124ビットハッシュと呼ばれます。これが意図的なものではない場合は、実際にはハッシュの部分的な暗号分析(クラッキング)です。

実用的なソリューション

スペルエラーをキャッチするには、チェックサムまたはチェック番号を追加してその横に書きます。 Perlのようなものを使うことができますアルゴリズム::ベルホフチェック番号を追加してください。

答え2

デフォルトではチェックサムビットはありません。スペルエラーを識別するには、同じチャネルでMD5合計のチェックサム(MD5など)を共有して確認できます。

答え3

MD5チェックサムはそれ自体チェックサムです。チェックサムに独自のチェックサム/チェック数字があるとおかしいでしょう。

16バイトの固有基準を満たす任意の合計はMD5チェックサムになります。この16バイトは、32個の16進数、128ビット、または任意の数字で表示できます。

関連情報