@happycodecom

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

При разработке сервиса файл-хостинга встал вопрос быстрого поиска дубликатов.
У каждого алгоритма хэширования есть вероятность коллизий из-за ограничения длинны генерируемой строки.
Сравнивать содержимое файлов затратно при больших объемах, да и разные файлы могут быть с одинаковыми sha1/md5 суммами.

Может генерировать длинную строку из двух/трех и более алгоритмов?

Как лучше?
  • Вопрос задан
  • 6506 просмотров
Пригласить эксперта
Ответы на вопрос 2
@MiiNiPaa
У каждого алгоритма хэширования есть вероятность коллизий из-за ограничения длинны генерируемой строки.
Это неотъемлемая часть собственно хеширования. Если нужно чтобы дубликаты были невозможны в принципе, длина хэша должна быть не меньше длины исходного файла.

Шансы случайной коллизии настолько невероятны, что об них можно и не думать.

На практике достаточно хранить достаточно длинный хэш (Даже SHA1 пойдёт) плюс, возможно, длину файла для предварительной проверки на уникальность (до хеширования)
Ответ написан
@vilgeforce
Раздолбай и программист
SHA1 достаточно уникальна. Коллизии у MD5 ищутся за минуты, про SHA1 и тем более SHA512 такого не слышал.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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