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