Хранение файлов в одном экземпляре с JAVA
Я хранил некоторые файлы на основе контрольной суммы, но обнаружил недостаток в том, что иногда 2 контрольные суммы могут быть идентичными.
Я всегда стараюсь искать API, а не изобретать велосипед, но ничего не могу найти.
Я знаю, что JSR 268 и JackRabbit являются стандартом для хранения контента, но мое приложение использует светлые годы для такого использования.
Итак, есть ли подходы для единственного хранилища файлов экземпляра с Java или я должен просто продолжать искать новые алгоритмы для моей контрольной суммы?
РЕДАКТИРОВАТЬ:
Когда numcheck не работает: 2 файла абсолютно одинаковы, только в разных местах файловой системы. Однако при отправке с клиента на стороне сервера невозможно узнать путь, которым они были до этого, поэтому это один и тот же файл дважды, одна и та же контрольная сумма.
Если вы хотите получить любой из них, как вы это проверите?
Хотел узнать, был ли стандартный подход, API или алгоритм, который мог бы помочь мне определить разницу
2 ответа
Независимо от того, насколько силен алгоритм хеширования, всегда есть вероятность столкновения. Алгоритм хеширования генерирует конечное число хешей из бесконечного числа входов.
Единственный способ убедиться, что два файла не идентичны, - сравнить их по крупицам. Хеширование их легче и быстрее, но влечет за собой риск столкновения.