TwerTrue
@TwerTrue
Молодой и неопытный разработчик

Какой хеш лучше получать у файла?

Пишем программу по поиску дубликатов, какой хеш использовать для дальнейшей проверки файлов, нужна быстрота работы, по MD5 файл в 20 ГБ проверялся 10 минут
  • Вопрос задан
  • 1109 просмотров
Решения вопроса 4
@Sumor
Для больших файлов считайте хеш не всего файла, а, например, начального мегабайта или хитрой последовательностью - десять кусков по мегабайт из разных частей файла. Всё равно если у вас подозрение на дубликат, то нужно перепроверять другим хешем или непосредственным сравнением.
Ответ написан
gbg
@gbg
Любые ответы на любые вопросы
Какие файлы? Универсальное решение будет, или работающее с конкретным типом данных?

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

Посмотрите алгоритмы, которые использует rsync.
Ответ написан
GBreazz
@GBreazz
КО намекает что быстрее MD5 только CRC32. Кроме шуток с двадцатью гигабайтами, быстро ничего работать не будет, просто потому что эти гигабайты надо через память прогнать. Такие задачи решаются разбиением исходного объёма данных на блоки. Например, брать хэш сумму каждого мегабайта, а потом общую хэш сумму полученных сумм. Достоинство такого подхода в том, что можно считать хэш у частично закаченного файла или считать в несколько потоков.
Ответ написан
2ord
@2ord
djb2, например. В сочетании с техниками, перечисленными ранее.
Взят из списка некриптографических хеш-функций
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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