Sto facendo un po 'di codice per l'elaborazione delle immagini, in cui ho scaricato alcune immagini (come BufferedImage) dagli URL e l'ho passato a un processore di immagini.Per verificare se due file di immagine sono uguali. Checksum o Hash?
Desidero evitare di passare la stessa immagine più di una volta al processore di immagini (poiché l'operazione di elaborazione dell'immagine è di costo elevato). Gli endpoint URL delle immagini (se sono le stesse immagini) possono variare e quindi posso impedirlo dall'URL. Quindi stavo pianificando di fare un checksum o un hash per identificare se il codice sta incontrando di nuovo la stessa immagine.
Per md5 ho provato Fast MD5 e ha generato un valore di checksum esadecimale di lunghezza caratteri 20K + per l'immagine (alcuni esempi). Ovviamente la memorizzazione di questo hash di caratteri 20K + sarebbe un problema quando si tratta di archiviazione del database. Quindi ho provato il CRC32 (da java.util.zip.CRC32). E ha generato una somma di controllo di lunghezza piuttosto ridotta rispetto all'hash.
Comprendo il checksum e l'hash per scopi diversi. Per lo scopo sopra spiegato posso semplicemente usare il CRC32? Potrebbe risolvere lo scopo o devo provare qualcosa di più di questi due?
Grazie, Abi
[Il checksum e la somma di hash sono uguali] (http://en.wikipedia.org/wiki/Checksum). In realtà basta guardare diversi algoritmi. –
L'hash MD5 a 128 bit dovrebbe essere sufficiente per il tuo scopo. – Thor
BTW - MD5 dovrebbe creare un valore hash a 128 bit mentre un crc32 ha 32 bit ... Che cosa hai fatto per generare checksum esadecimali di lunghezza 20k +? –