@accountnujen

Как быстро проверить, что строка — md5?

У пользователя в адресной есть хэш. Чтобы не тратить время на запрос в базу по этому хэшу, хочется в начале убедиться, что дело имеем именно с хэшем, а не с какой-нибудь *ренью. Я надеялся, что можно просто взвесить через strlen, однако символы <>?*@! имеют такой же вес, как и буквы с цифрами.

Самый простой вариант - регулярка, которая проверяет эти символы. Вариант не нравится, поэтому хочу узнать у вас.
  • Вопрос задан
  • 160 просмотров
Пригласить эксперта
Ответы на вопрос 3
@nozzy
Symfony, Laravel, SQL
if (ctype_xdigit($md5) && strlen($md5) == 32) ...
Ответ написан
Комментировать
index0h
@index0h
PHP, Golang. https://github.com/index0h
/^[0-9a-f]{32}$/i
Ответ написан
ipatiev
@ipatiev Куратор тега PHP
Потомок старинного рода Ипатьевых-Колотитьевых
Вы не на выставке современного искусства, чтобы рассуждать в категориях нравится-не нравится.
По мне так с точки зрения производительности и эта проверка лишняя, база от двух-трех шагов поиска в оперативной памяти не развалится.
Но с точки зрения валидации эта проверка имеет право на существование. Для этого просто взять регулярку, и проверить, без всяких "нравится-не нравится"
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы