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