Хранение файлов в одном экземпляре с JAVA

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

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

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

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

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

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

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

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

2 ответа

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

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

Другие вопросы по тегам