Подтвердить что ты не робот

Проверьте, является ли строка MD5 Hash

Я случайно остановил хэширование паролей, прежде чем они были сохранены, поэтому теперь у моей базы данных есть сочетание паролей MD5 и неуправляемых паролей.

Я хочу пропустить и хешировать те, которые не являются MD5. Можно ли проверить, является ли строка хешем MD5?

4b9b3361

Ответ 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);
}