Ho un piccolo problema con un programma che sto sviluppando in EJB 3.0.
In pratica quando il sistema aggiunge un nuovo utente, prima di inserire la password nel DB MySql, la cripta con MD5.
Quando un utente fa il login il sistema prende la password inserita dall'utente la cripta e la confronta con quella già criptata conservata nel DB.codice:private String cryptPassword(final String password) { MessageDigest md=null; try { //we use MD5 Algorithm md = MessageDigest.getInstance("MD5"); } catch (NoSuchAlgorithmException ex) { ex.printStackTrace(); } md.update(password.getBytes()); return new String(md.digest()); }
Sembrava andare tutto ok, fin quando per caso non ho usato la password: "direttore".
In pratica usando nel prompt-msdos l'algoritmo MD5 con input "direttore" mi restituisce questa cosa
Mente nel DB se accedo tramite MySql Administrator trovo solo questo:codice:àLa☺ ×fá`¾e¦☼â♫&
Non succede con le altre password provate fin'ora.
Come mai? E' lo spazio che crea problemi? Sono quei caratteri speciali? Uso male l'algoritmo MD5? come risolvo?
Aiutatemi per favore
NB: nel DB la password viene memorizzata come VARCHAR