Рекурсивный MD5 и вероятность столкновения - PullRequest
7 голосов
/ 18 сентября 2011

Интересно, «безопасно» ли хешировать кучу значений MD5 вместе, чтобы создать новый хэш, или это каким-либо образом увеличит вероятность коллизий?

Фон: у меня есть пара файлов с зависимостями. У каждого файла есть связанное хеш-значение, которое рассчитывается на основе его содержимого. Давайте назовем это хеш-значением для одного файла. В дополнение к этому, файл также должен иметь хеш-значение, которое включает в себя все зависимые файлы, хеш-значение «multi-file».

Таким образом, вопрос заключается в следующем: могу ли я просто взять все хеш-значения MD5 для отдельных файлов зависимых файлов, объединить их, а затем вычислить MD5 по объединенным значениям, чтобы получить хеш-значение для нескольких файлов. Или это приведет к хешу MD5, который может столкнуться с большей вероятностью, чем если бы я конкатенировал содержимое всех зависимых файлов вместе.

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

Ответы [ 3 ]

3 голосов
/ 18 сентября 2011

Звучит так, будто тебе нужно Меркель Три

1 голос
/ 18 сентября 2011

Я думаю, что риск хэширования примерно одинаков для хэширования сцепленных файлов и хеширования конкатенированных файлов.

1 голос
/ 18 сентября 2011

У MD5 много проблем с коллизиями, см. Запись MD5 в Википедии .

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

Или, если еще не слишком поздно, переключитесь на SHA-1.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...