L'utilisation de md5 sur une chaîne de caractères produit toujours un résultat alphanumérique crypté, c'est-à-dire sans symboles.
Cependant, lorsque j'utilise la fonction php crypt(), en particulier la fonction CRYPT_MD5 (et elle est activée, j'ai vérifié) avec un sel, le supposé hachage md5 qu'elle renvoie ne ressemble pas à un hachage md5.
Par exemple :
si je md5 la chaîne 'password', j'obtiens :
$pass = md5('password');
echo $pass;
//5f4dcc3b5aa765d61d8327deb882cf99
si j'utilise CRYPT_MD5, qui est désigné par le préfixe "$1$" et le suffixe "$", le sel étant "salt" :
$pass = crypt('password', '$1$salt$');
echo $pass;
//$1$salt$qJH7.N4xYta3aEG/dfqo/0
Maintenant, l'algorithme et le sel utilisés sont affichés comme prévu, '$1$' indique que le CRYPT_MD5 a été utilisé et le sel est 'salt' entre les signes $.
Cependant, le mot de passe haché après le dernier signe $ ne ressemble pas à un md5... il contient des barres obliques et des points.
Pourquoi le hachage se fait-il de cette manière ? N'est-ce pas un vrai md5 ?
N'hésitez pas à me demander des précisions si vous le souhaitez. Ugh.