Задать вопрос
@happycodecom

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

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

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

Как лучше?
  • Вопрос задан
  • 6571 просмотр
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Python-разработчик
    10 месяцев
    Далее
  • Skillfactory
    DevOps-инженер
    6 месяцев
    Далее
  • Хекслет
    Фронтенд-разработчик
    10 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 2
@MiiNiPaa
У каждого алгоритма хэширования есть вероятность коллизий из-за ограничения длинны генерируемой строки.
Это неотъемлемая часть собственно хеширования. Если нужно чтобы дубликаты были невозможны в принципе, длина хэша должна быть не меньше длины исходного файла.

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

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

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

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