Задать вопрос
@accountnujen

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

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

Самый простой вариант - регулярка, которая проверяет эти символы. Вариант не нравится, поэтому хочу узнать у вас.
  • Вопрос задан
  • 284 просмотра
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Skillbox
    PHP-разработчик. Базовый уровень
    3 месяца
    Далее
Пригласить эксперта
Ответы на вопрос 3
@nozzy
Symfony, Laravel, SQL, Python, Telegram
if (ctype_xdigit($md5) && strlen($md5) == 32) ...
Ответ написан
Комментировать
index0h
@index0h
PHP, Golang. https://github.com/index0h
ipatiev
@ipatiev Куратор тега PHP
Потомок старинного рода Ипатьевых-Колотитьевых
Вы не на выставке современного искусства, чтобы рассуждать в категориях нравится-не нравится.
По мне так с точки зрения производительности и эта проверка лишняя, база от двух-трех шагов поиска в оперативной памяти не развалится.
Но с точки зрения валидации эта проверка имеет право на существование. Для этого просто взять регулярку, и проверить, без всяких "нравится-не нравится"
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы