2009-08-24 2 views
0

Скажем, у меня есть «п» число файлов, для каждого из которых у меня есть CRC32, MD5 и SHA1 дайджестовПроверка файла переваривает

Теперь эти «п» число файлов фактически разрезание файлов/архивов одного большого файла ,

Когда эти более мелкие файлы рекомбинированы/объединены в больший файл, мы также можем вычислить дайджест этого более крупного файла.

Мой вопрос: есть ли способ проверить, соответствует ли комбинация дайджеста этих меньших файлов дайджестом большого файла?

Например, скажем, у меня есть файл, разбитый на 4 части с дайджестов 0xDE, 0xAD, 0xBE, 0xEF

Скажем, после присоединения, тем больше файл имеет переваривать 0xc0

Есть ли способ, чтобы проверить, что join (0xDE, 0xAD, 0xBE, 0xEF) == 0xC0, где «join» - магическая операция/формула/algorthm, которую я ищу?

ответ

1

Не думаю, что это так, извините
Было бы сделать его довольно легко взломать MD5, если это было возможно

редактировать. Если вы имеете в виду, я могу вычислить MD5 суммы из MD5 частей = нет.
Но если вы просто хотите подтвердить правильность деталей, вы всегда можете вычислить MD5 каждой отдельной части, а затем MD5 из набора этих MD5.
Очевидно, чтобы убедиться в этом, вам необходимо выполнить одну и ту же последовательность, чтобы кто-то, у кого есть только полный файл, должен был разбить его на выполнение той же проверки.

+0

трещина MD5 .. как так? – PoorLuzer

+0

это позволит вам создавать словари блоков с известным MD5, а затем, если вы хотите создать определенный дайджест для поддельного сообщения, у вас будет библиотека произвольных дополняющих блоков для добавления. –

+0

MD5 больше не следует использовать для защищенных хэшей, это было продемонстрировано как неуверенное в течение нескольких лет. – skaffman

0

Если вы не хотите присоединяться к файлам, вы можете передавать их по одному алгоритму хеширования с использованием метода TransformBlock. С вызовом TransformFinalBlock, который дает вам результат.