J'ai accidentellement arrêté de hacher les mots de passe avant qu'ils ne soient stockés, alors maintenant ma base de données a un mélange de mots de passe MD5 et de mots de passe non hachés.
Je veux parcourir et hacher ceux qui ne sont pas MD5. Est-il possible de vérifier si une chaîne est un hachage MD5?
Vous pouvez vérifier en utilisant la fonction suivante:
function isValidMd5($md5 ='')
{
return preg_match('/^[a-f0-9]{32}$/', $md5);
}
echo isValidMd5('5d41402abc4b2a76b9719d911017c592');
Le hachage MD5 (algorithme de résumé de message) est généralement exprimé au format texte sous la forme d'un nombre hexadécimal à 32 chiffres.
Cette fonction vérifie que:
Peut-être un peu plus vite:
function isValidMd5($md5 ='') {
return strlen($md5) == 32 && ctype_xdigit($md5);
}