Хэш-коллизии с различными размерами файла настолько же, вероятно, как тот же размер файла?

Я хеширую большое количество файлов, и избегать хэш-коллизий, я также храню первоначальный размер файла - тот путь, даже если существует хэш-коллизия, крайне маловероятно, что размеры файла также будут идентичны. Этот звук (хэш-коллизия, одинаково вероятно, будет иметь любой размер), или сделайте мне нужна другая информация (если коллизия, более вероятно, также будет той же длиной как оригинал).

Или, в более общем плане: каждый файл так же вероятен произвести конкретный хеш, независимо от исходного размера файла?

9
задан John Saunders 14 March 2010 в 15:39
поделиться

4 ответа

Зависит от вашей хэш-функции, но, как правило, файлы одинакового размера, но с разным содержимым, с меньшей вероятностью будут генерировать тот же хэш, что и файлы другого размера. Тем не менее, вероятно, было бы проще просто использовать проверенный временем хеш с большим пространством (например, MD5 вместо CRC32 или SHA1 вместо MD5), чем делать ставку на свои собственные решения, такие как хранение размера файла.

6
ответ дан 4 December 2019 в 13:01
поделиться

Вся суть семейства криптографических хэшей (MD5, SHA-x и т. Д.) Состоит в том, чтобы сделать коллизии маловероятными. Идея состоит в том, что официальные судебные процессы готовы полагаться на то, что намеренное создание столкновения нецелесообразно. Так что, действительно, это плохое использование пространства и процессорного времени, чтобы добавить пояс к подтяжкам этих хэшей.

0
ответ дан 4 December 2019 в 13:01
поделиться

Хеш-функции разработаны таким образом, что очень сложно получить коллизию, иначе они не будут эффективны.
Если у вас есть конфликт хешей, который абсолютно невероятен с вероятностью 1: number_of_possible_hashes, что ничего не говорит о размере файла.

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

2
ответ дан 4 December 2019 в 13:01
поделиться

Размер хэша одинаков независимо от размера исходных данных. Поскольку существует только ограниченное количество возможных хешей, теоретически возможно, что два файла с разными размерами могут иметь один и тот же хеш. Однако это означает, что также возможно, что два файла с одинаковым размером могут иметь одинаковый хэш.

1
ответ дан 4 December 2019 в 13:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: