Хэш для дубликатов изображений работает не для всех дубликатов.JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Хэш для дубликатов изображений работает не для всех дубликатов.

Сообщение Anonymous »


Мне нужно обнаружить дубликаты изображений. Вот что я сделал:

попробуй { MessageDigest messageDigest = MessageDigest.getInstance("SHA-512"); FileInputStream fi = новый FileInputStream (файл); байт fileData[] = новый байт[(int) file.length()]; fi.read(fileData); фи.закрыть(); вернуть новый BigInteger(1, messageDigest.digest(fileData)).toString(16); } поймать (Исключение е) { throw new RuntimeException("невозможно прочитать файл" + file.getAbsolutePath(), e); } Причина, по которой это не работает для всех изображений, заключается в том, что файлы, конечно же, должны быть одинаковыми. Например, он практически такой же, но имеет другой размер (195 КБ против 196 КБ):

https://i.stack.imgur.com/rzXq9.jpg https://i.stack.imgur.com/bRY2r.jpg

Однако меня беспокоит тот факт, что я получил два разных хэша для изображения, которое имеет абсолютно одинаковый размер, одинаковый цветовой профиль, одинаковое разрешение и т. д. (не уверен, что смогу опубликовать изображение, поскольку это лицо человека, и я не спрашивал его согласия).
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»