View Full Version : [Java e Mysql] Perdita di dati
Ho un'applicazione java che utilizza un db MySql. Quando però memorizzo nel db delle stringhe particolari (ottenute come hash di certi file.. quindi sono complesse, piene di caratteri particolari) poi se le ricarico dal db non ottengo più gli stessi valori identici. Dovrei usare un tipo di dato diverso da varchar?
il character set di default per mysql è latin1, da quello che dici probabilmente ci stai scrivendo sopra con un cs unicode.
pero' è strano, un hash md5 ad esempio è espresso in esadecimale (quindi solo con i caratteri 0-9a-f , che algoritmo stai usando?
il character set di default per mysql è latin1, da quello che dici probabilmente ci stai scrivendo sopra con un cs unicode.
pero' è strano, un hash md5 ad esempio è espresso in esadecimale (quindi solo con i caratteri 0-9a-f , che algoritmo stai usando?
Utilizzo anch'io l'MD5. Ti quoto il mio metodo:
public String calcolcaHashStringa(String stringa) throws Exception{
MessageDigest md = MessageDigest.getInstance("MD5");
byte[] b=stringa.getBytes();
byte[] hashArray =md.digest(b);
String hash=new String(hashArray);
return hash;
}
Questo ad esempio è un hash che ottengo: "§"Æ=¸ì†%¯l÷¸ÂÙ9".
aldonation
25-08-2006, 10:20
Non conviene convertire il risultato in Base64 prima di metterlo sul db?
In questo modo non ci sono caratteri strani...
EDIT:
Sembra che java non abbia ufficialmente una classe per fare l'encoding in Base64...quindi eccoti il link per scaricare un'implementazione libera
http://iharder.sourceforge.net/base64/
Poi ci sono le istruzioni sul sito...
Buona fortuna ;)
Ok ora dovrebbe funzionare. Prima che editassi avevo guardato un po' su google trovando del codice. Cmq grazie del Link. Ora almeno ottengo stringhe in esadecimale e sono sicuro che dopo quando riprobverò l'applicazione funzionerà tutto.
Grazie ancora :D !
EDIT: Confermo, ora funziona!
vBulletin® v3.6.4, Copyright ©2000-2026, Jelsoft Enterprises Ltd.