L'Algorithme MD5⚓︎
1. Calcul du hash⚓︎
Le programme suivant permet de calculer le hash d'une chaîne de caractères, avec l'algorithme md51 :
☕ Code Java
public class MD5 {
public static String getMd5(String input) {
try {
// Static getInstance method is called with hashing MD5
MessageDigest md = MessageDigest.getInstance("MD5");
// digest() method is called to calculate message digest
// of an input digest() return array of byte
byte[] messageDigest = md.digest(input.getBytes());
// Convert byte array into signum representation
BigInteger no = new BigInteger(1, messageDigest);
// Convert message digest into hex value
String hashtext = no.toString(16);
while (hashtext.length() < 32) {
hashtext = "0" + hashtext;
}
return hashtext;
}
// For specifying wrong message digest algorithms
catch (NoSuchAlgorithmException e) {
throw new RuntimeException(e);
}
}
// Driver code
public static void main(String args[]) throws NoSuchAlgorithmException {
String s = "Hello World !";
System.out.println("Your HashCode Generated by MD5 is: " + getMd5(s));
}
}
2. Utilisation⚓︎
Utilisation
C'est cette chaîne qui doit être insérée en base. Il n'existe pas d'algorithme permettant d'effectuer l'opération inverse.
Lorsqu'un utilisateur veut se connecter :
- on récupère le mot de passe qu'il a saisi,
- on calcule son hash avec md5,
-
et on compare avec celui stocké en base.
- Si c'est le même, c'est le bon mot de passe.
- Si ce n'est pas le même, ce n'est pas le bon mot de passe.