Хранение файлов в одном экземпляре с JAVA - PullRequest
0 голосов
/ 27 июля 2011

Я хранил некоторые файлы на основе контрольной суммы, но обнаружил недостаток, заключающийся в том, что иногда 2 контрольные суммы могут быть идентичными.

Я всегда стараюсь искать API вместо того, чтобы заново изобретать колесо, но ничего не могу найти.

Я знаю, что JSR 268 и JackRabbit являются стандартом для хранения контента, но мое приложение использует такие световые годы.

Итак, есть ли подходы для хранения файлов одного экземпляра сJava или мне просто продолжать искать новые алгоритмы для моей контрольной суммы?

РЕДАКТИРОВАТЬ:

Когда numcheck не работает: 2 файла абсолютно одинаковы, только в разных местах файловой системы.Однако при отправке с клиента на стороне сервера невозможно узнать путь, которым они были до этого, поэтому это один и тот же файл дважды, одна и та же контрольная сумма.

Если вы хотите получить любой из них, как вы это проверите?

Хотелось бы узнать, существует ли стандартный подход, API или алгоритм, который мог бы помочь мне определить разницу

Ответы [ 2 ]

3 голосов
/ 27 июля 2011

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

0 голосов
/ 27 июля 2011

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

...