Проверьте, является ли строка MD5 Hash
Я случайно остановил хэширование паролей, прежде чем они были сохранены, поэтому теперь у моей базы данных есть сочетание паролей MD5 и неуправляемых паролей.
Я хочу пропустить и хешировать те, которые не являются MD5. Можно ли проверить, является ли строка хешем MD5?
Ответы
Ответ 1
Вы можете проверить, используя следующую функцию:
function isValidMd5($md5 ='')
{
return preg_match('/^[a-f0-9]{32}$/', $md5);
}
echo isValidMd5('5d41402abc4b2a76b9719d911017c592');
MD5 (алгоритм дайджест-сообщения) Хэш обычно выражается в текстовом формате в виде 32-разрядного шестнадцатеричного числа.
Эта функция проверяет, что:
- Он содержит только буквы и цифры (a-z, 0-9).
- Длина 32 символов.
Ответ 2
Возможно, немного быстрее:
function isValidMd5($md5 ='') {
return strlen($md5) == 32 && ctype_xdigit($md5);
}