Я делаю код обработки изображений, где я загружаю некоторые изображения (как BufferedImage) из URL-адресов и передаю их на процессор изображений.Проверить, являются ли два файла изображений одинаковыми..Чегсум или Хэш?
Я хочу избежать передачи одного и того же изображения более одного раза в процессор изображений (поскольку операция обработки изображений имеет высокую стоимость). Конечные точки URL-адресов изображений (если они являются одинаковыми изображениями) могут отличаться, и поэтому я могу предотвратить это по URL-адресу. Поэтому я планировал выполнить контрольную сумму или хэш, чтобы определить, снова ли встречается этот код.
Для md5 я попробовал Fast MD5, и он сгенерировал шестую контрольную сумму символа длины символа 20K + для изображения (некоторый образец). Очевидно, что сохранение этого хэш-символа 20K + будет проблемой, когда дело доходит до хранения базы данных. Поэтому я попробовал CRC32 (от java.util.zip.CRC32). И он действительно генерировал сумму меньшего размера проверки, чем хэш.
Я понимаю, что контрольная сумма и хэш предназначены для разных целей. Для цели, описанной выше, могу ли я просто использовать CRC32? Разве это решит цель, или я должен попробовать нечто большее, чем эти два?
Спасибо, Abi
[Контрольная сумма и хэш-сумма одинаковы] (http://en.wikipedia.org/wiki/Checksum). На самом деле вы просто смотрите на разные алгоритмы. –
128-битный MD5-хэш должен быть достаточным для вашей цели. – Thor
BTW - MD5 должен создать 128-битное хэш-значение, в то время как crc32 имеет 32 бита ... Что вы сделали для генерации шестнадцатеричных контрольных сумм длиной 20 кбайт? –