vendredi 7 décembre 2007

Java : Crypter vos mots de passe avant de les enregistrer dans une base de données


Avez-vous déjà ressenti le besoin de crypter ces mots de passe que vous enregistrez dans votre dbase de données pour l’authentification des utilisateurs dans votre application ?
Voudriez-vous crypter le texte de manière à ce que seule votre application puisse l’interpréter, et que le résultat n’ait pas de sens pour un oeil non exercé ?
Voilà [...]

Avez-vous déjà ressenti le besoin de crypter ces mots de passe que vous enregistrez dans votre dbase de données pour l’authentification des utilisateurs dans votre application ?

Voudriez-vous crypter le texte de manière à ce que seule votre application puisse l’interpréter, et que le résultat n’ait pas de sens pour un oeil non exercé ?

Voilà un petit exemple de code pour crypter un chaine de caractères.


public synchronized String encrypt(String plaintext) throws SystemUnavailableException

{

MessageDigest md = null;

try

{

md = MessageDigest.getInstance("SHA"); //step 2

}

catch(NoSuchAlgorithmException e)

{

throw new SystemUnavailableException(e.getMessage());

}

try

{

md.update(plaintext.getBytes("UTF-8")); //step 3

}

catch(UnsupportedEncodingException e)

{

throw new SystemUnavailableException(e.getMessage());

}

byte raw[] = md.digest(); //step 4

String hash = (new BASE64Encoder()).encode(raw); //step 5

return hash; //step 6

}



Pour comparer deux chaines, encryptez la seconde suivant le même procédé puis comparez les.

Pour une analyse plus détaillée, je vous inivite à lire l’article de James Shvarts.


Source : http://www.javablogs.xyling.com/






Aucun commentaire: