Проверка дайджестов файлов - PullRequest
0 голосов
/ 24 августа 2009

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

Теперь эти n файлов - это фактически разделенные файлы / архивы одного большого файла.

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

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

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

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

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

Ответы [ 2 ]

1 голос
/ 24 августа 2009

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

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

0 голосов
/ 24 августа 2009

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

...