Salve a tutti,

ho provato ad utilizzare la funzione per criptare una password adattata per la mia pagina jsp:
--------------------------------------------------------
SecureRandom s = new SecureRandom();
byte[] salt = new byte[12];
s.nextBytes(salt);
MessageDigest md = MessageDigest.getInstance("MD5"); //oppure SHA-1
md.update(salt);
md.update(passwd.getBytes("UTF8"));
byte[] hash = md.digest();
--------------------------------------------------------

dove passwd è la mia password in chiaro
hash mi da la stessa criptata.

Quando da richiamo la funzione per decriptare(sempre adattata alla jsp):

--------------------------------------------------------
pwd = passwd.getBytes("UTF8");
hash = rs.getString("passwd").getBytes("UTF8");
System.arraycopy(hash, 0, salt, 0, 12);
MessageDigest md = MessageDigest.getInstance("MD5");
md.update(salt);
md.update(pwd);
byte[] result = md.digest();
--------------------------------------------------------

la variabile hash è ricavata prendendo il valore inserito nella tabella, ma questo è di tipo String quindi devo fare getBytes per portarlo a byte di array.

Inoltre rispetto alla funzione che ho visto a me se non assegno un valore a salt mi da NullPointerException.

Il risultato è che confrontando hash e result trovo due array di byte differenti.

Qualcuno mi sa dare aiuto?
Grazie