Модель надежности пароля - PullRequest
1 голос
/ 05 января 2012

Должен ли я использовать шаблон пароля, такой как a-zA-Z0-9, а также требовать хотя бы один из каждого класса символов в пароле или просто разрешить что-либо внутри пароля?

Что позволяют сайтампользователя использовать в качестве своего пароля?Есть что-то еще, что я должен рассмотреть?

Ответы [ 5 ]

5 голосов
/ 05 января 2012

a-ZA-Z0-9 чрезмерно ограничен.Вы должны разрешить мне использовать любые символы и обеспечить соблюдение требований минимум (т. Е. Не менее 8 символов, не менее одной буквы и одного числа)

3 голосов
/ 05 января 2012

Энтропия пароля

Тест хорошего пароля - это не количество представленных наборов символов, а Энтропия .

Тестирование на энтропию: Сотрудники Dropbox собрали этот фантастический инструмент под названием zxcvbn , чтобы сделать это.Я бы настоятельно рекомендовал прочитать их описание, объясняющее это здесь .

Краткое объяснение: Оба класса символов (строчные, прописные,цифры и специальные символы) и длина важны, потому что вместе они повышают энтропию пароля (длина делает это намного быстрее, чем классы символов), но пользователи затем стремятся к предсказуемым шаблонам, которые уменьшают энтропию.

Это может быть юмором, но этополезно иллюстрирует часть сути: http://xkcd.com/936/введите описание изображения здесь

2 голосов
/ 05 января 2012

Не должно быть никаких ограничений на то, что пользователь должен иметь возможность использовать. Поскольку вы все равно хешируете пароль перед его сохранением (я надеюсь), это не будет иметь никакого значения, что содержит пароль.

Если вы устанавливаете требования, они должны быть минимальными требованиями.

1 голос
/ 05 января 2012

Шаблон регулярного выражения пароля

((?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%]).{6,20})

Разбивка

(                       # Start of group
  (?=.*\d)              #   must contains one digit from 0-9
  (?=.*[a-z])           #   must contains one lowercase characters
  (?=.*[A-Z])           #   must contains one uppercase characters
  (?=.*[@#$%])          #   must contains one special symbols in the list "@#$%"
              .         #     match anything with previous condition checking
                {6,20}  #        length at least 6 characters and maximum of 20 
)                       # End of group

Связанный:

0 голосов
/ 05 января 2012

минимум 8 символов, предпочтительно 12

хотя бы одна цифра, хотя бы одна строчная буква, хотя бы одна прописная буква, хотя бы один символ (* /% ...)

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