Aller au contenu

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 :

  1. on récupère le mot de passe qu'il a saisi,
  2. on calcule son hash avec md5,
  3. 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.