RegEx для очень надежных паролей - PullRequest
0 голосов
/ 12 июля 2019

Я работаю над проектом и мне нужно проверить генерацию пароля по следующим правилам:

  • Минимум 1 цифра
  • Минимум 1 заглавная буква
  • Минимум 1символ
  • Нет последовательных чисел
  • Не включает адрес электронной почты или имя пользователя
  • Минимум 8 цифр

Пока у меня есть такое выражение:

/^(?=.*[0-9])(?=.*[a-z])(?!=.*\d{4})(?=.*[A-Z])(?=.*[!@#$%^&*(),.?":{}|<>])(?=\S+$).{8,16}$/

это только проверяет: - Минимум 1 цифру - Минимум 1 заглавную букву - Минимум 1 символ - 8 минимальных цифр

Я не уверен, как проверить:

  • Нет последовательных номеров (4)

Принимать:

1953
1749
7402

Не принимать:

1234
0987
4567
1111
9999

1 Ответ

0 голосов
/ 12 июля 2019

Вот некоторые подсказки:

  • Как проверить последовательные номера: Регулярно проверять 4 последовательных номера
  • Есть еще специальные символы [!@#$%^&*(),.?":{}|<>]
  • Я бы сделал другую электронную почту / имя пользователя как отдельную проверку, не являющуюся частью этого регулярного выражения. Я бы разделил адрес электронной почты / имя пользователя на .-\s-_ и проверил, содержит ли пароль какую-либо из разделенных частей.

Также имейте в виду, что наличие таких специфических правил для паролей ограничивает количество возможных паролей. Я бы предложил добавить измеритель надежности пароля вместо ограничений и позволить людям решать.

Удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...