Salve ragazzi,come posso generare la funzione di hash di un file immagine su java?
Salve ragazzi,come posso generare la funzione di hash di un file immagine su java?
Se per "hash" intendi i noti algoritmi di hash crittografico MD5, SHA-1, SHA-256, ecc.., il framework standard di Java ha già nel package della security la classe java.security.MessageDigest che permette proprio questo. Il runtime Java ha già una serie di algoritmi implementati, MD5 e SHA-1 ci sono di sicuro e da parecchio tempo. Altri algoritmi più avanzati sono stati introdotti solo con le versioni più recenti di JDK/JRE.
Il tipo di file è indifferente. Lo puoi fare per qualunque tipo di file. In sostanza si tratta di aprire il file e leggere tipicamente a blocchi (giusto per efficienza) di tot byte per volta e "buttarli" nel MessageDigest. Alla fine puoi ottenere il digest che è un piccolo array byte[] di lunghezza fissa (es per MD5 hai un array di 16 byte ovvero i 128 bit del MD5).
Se lo vuoi formattare in stringa come esadecimale, base64 o altro, è a carico tuo (il MessageDigest NON lo fa).
Quindi:
- chiarisci quale algoritmo di hash intendi usare
- precisa la versione di JDK/JRE minima che intendi usare (così vediamo se l'algoritmo è già nel framework)
- leggi la documentazione di MessageDigest
Ultimo: per dubbi, chiedi pure.
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
Ti ringrazio,ho risolto utilizzando l'algoritmo SHA-256 ed ho formattato il file con base64 in esadecimale .