/** * Calcolo del digest (impronta digitale) di un messaggio @author Enrico Denti @version 1.0, 26/2/1999 */ import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; class Esempio0 { public static void main(String args[]){ System.out.println("Calcolo del digest di un messaggio"); MessageDigest sha = null; try { sha = MessageDigest.getInstance("SHA-1"); // SHA = Secure Hash Algorithm, standard del NIST } catch (NoSuchAlgorithmException e) { System.out.println("Algoritmo richiesto non supportato"); } byte[] messaggioInChiaro = {10,20,30,40,50}; // nella realtà sarà letto da un file sha.update(messaggioInChiaro); byte[] impronta = sha.digest(); // se il messaggio è molto grande, ad esempio perché // viene letto da un file, è possibile fare più chiamate // ad update(), prima di chiamare digest(): i messaggi // inseriti con update() saranno appesi uno all'altro, e // l'impronta sarà comunque riferita al messaggio completo. // Ad esempio: // sha.update(msg1); // ... // sha.update(msgN); // impronta = sha.digest(); // si ottiene il digest di msg1+msg2+...+msgN System.out.println("Digest del messaggio:"); for (int i=0; i