J'ai lu quelques fois que le hachage est une fonction à sens unique, c'est-à-dire que vous pouvez créer le hachage d'un message, mais vous ne pouvez pas récupérer le message d'origine à partir du hachage, vérifiez simplement son intégrité.
Cependant, si cela était vrai, pourquoi pouvons-nous déchiffrer les hachages MD5 et obtenir les données d'origine?
Le hachage n'est pas du cryptage (c'est du hachage), donc nous ne "décryptons" pas les hachages MD5, car ils n'étaient pas "cryptés" en premier lieu.
Le hachage est unidirectionnel, mais déterministe: hacher deux fois la même valeur et vous obtenez deux fois la même sortie. Le crack d'un hachage MD5 consiste donc à essayer des entrées potentielles (mots de passe) jusqu'à ce qu'une correspondance soit trouvée. Cela fonctionne bien lorsque l'entrée est "un mot de passe qu'un utilisateur humain a trouvé" car les utilisateurs humains sont terriblement peu imaginatifs lorsqu'il s'agit de choisir des mots de passe.
Vous ne pouvez pas "décrypter" MD5.
Ce que vous pouvez faire est d'essayer de faire correspondre un grand nombre d'entrées possibles dans l'espoir de tomber sur l'entrée qui correspond à votre hachage. Il existe plusieurs attaques contre l'algorithme MD5 qui rendent cela beaucoup plus facile.