Я был бы очень признателен, если бы y'all мог помочь мне решить эту проблему: я пытаюсь выяснить способ определения, нужно ли пользователю обновлять свой пароль. Раньше не было требований к силе одного из наших паролей пользователей, однако теперь моя (фальшивая) компания меняет это (просто самоучитель себя для удовольствия). Мы хотели бы, чтобы пользователи включили в свой пароль как минимум 1 символ, номер и заглавную букву. Нам нужен только список писем пользователей, которые не отвечают этим требованиям. Как я могу отфильтровать пароли, соответствующие этому требованию? (Я честно не знаю, с чего начать)
То, о чем я думал, использует числа ascii, чтобы определить, является ли пароль действительным или нет, и мне было бы легко сделать это на python или c++, однако когда дело доходит до sql, я так сильно потерял...
users
-----------
id
Title
First_Name
Last_Name
Email
Roles
Password
Я думаю, что это можно сделать с not like
и проверкой ограничений, как вы можете видеть ниже. Номер, Верхний регистр, а затем специальный символ
select Email from users where
password not like '%[0-9]%'
and password not like '%[A-Z]%'
and password not like '%[!@#$%a^&*()-_+=.,;:~]%'
Как заявляет Рошана, хорошая идея не хранить пароли в сыром тексте. Это может быть большой проблемой безопасности.
Вы не можете получить список таких критериев.
Основной причиной этого является то, что вы не должны хранить пользовательский пароль. Без необработанного пароля вы не можете применять такие фильтры.
Если вы действительно хотите научить себя, способ сделать это - заставить всех пользователей обновлять свои пароли, тогда вы можете добавить шаблон регулярного выражения или что-то сделать, чтобы они делали то, что вы хотите.
Это один из моих примеров с базой данных, так как вы можете видеть, что все пароли солены и хешированы с использованием механизма хеширования MD5.