0

「n」個のファイルがあり、それぞれにCRC32、MD5、およびSHA1ダイジェストがあるとします

現在、これらの「n」個のファイルは、実際には単一の大きなファイルの分割ファイル/アーカイブです。

これらの小さなファイルが再結合/結合されて大きなファイルになると、この大きなファイルのダイジェストも計算できます。

私の質問は、これらの小さなファイルのダイジェストの組み合わせが大きなファイルのダイジェストと等しいかどうかを確認する方法はありますか?

たとえば、ダイジェストが 0xDE、0xAD、0xBE、0xEF の 4 つの部分に分割されたファイルがあるとします。

参加後、大きなファイルにはダイジェスト 0xC0 があるとします。

join(0xDE, 0xAD, 0xBE, 0xEF) == 0xC0 であることを確認する方法はありますか?

4

2 に答える 2

1

そうは思わないでください、申し訳ありません
が、これが可能であれば、MD5をクラックするのはかなり簡単になります

編集。つまり、パーツのMD5から合計のMD5を計算できますか=いいえ。
ただし、パーツが正しいことを確認したいだけの場合は、いつでも個々のパーツのMD5を計算してから、それらのMD5のセットのMD5を計算できます。
明らかに、それを確認するには同じシーケンスを実行する必要があるため、完全なファイルしか持っていない人は、同じチェックを行うためにファイルを分割する必要があります。

于 2009-08-24T17:42:01.463 に答える
0

ファイルを結合しない場合は、TransformBlockメソッドを使用してファイルを1つずつハッシュアルゴリズムに渡すことができます。TransformFinalBlockを呼び出すと、結果が得られます。

于 2009-08-24T19:10:07.480 に答える