io onestamente mi sono fermata prima, perché non sono sicurissima che la trasformazione che fa da stringa a byte sia corretta (sempre perché non sono sicura del contenuto logico della stringa di partenza).Originariamente inviato da c0der
C'è stata un po' di confusione in questo thread credo.
L'op voleva solo sapere come ottenere una stringa stampabile per un md5.
Da che mondo e mondo si stampano i 16 bytes dell'md5 in esadecimale, ottenendo quindi una stringa di 32 caratteri.
Un modo semplice e sbrigativo è sostiture la riga:
return new String(md5);
con
return String.format("%032x", new BigInteger(1, md5));
(importa java.math.BigInteger)
Ciao.
Poi per averne una versione stampabile torni a dover passare per il base64...insomma mi sono focalizzata sul primo errore, nemmeno il passaggio che hai fatto tu è corretto, perché BigInteger suppone che MD5 sia un numero e in generale non è vero (è un array di byte, diverso da dire che quell'array rappresenta un valore intero).