Помогите, пожалуйста, написать регулярку валидации пароля.
Опыта в написании регулярок крайне мало...
Условие: Пароль должен содержать хотя бы 1 букву и цифру и быть длиной от 6 до 16
На ум приходит что-то вроде
/^(а вот что тут должно быть - не пойму...){6,16}$/i
1. NeuroZ - 06 Октября, 2016 - 17:34:06 - перейти к сообщению
2. Fart - 06 Октября, 2016 - 18:18:49 - перейти к сообщению
пускай лучше сам пользователь будет выбирать какой пароль, а ты только проверяй насколько длинный он. в фронт-энде можешь проверять какие символы вводит.
при получении вводимого пароля
---используешь одну из функций strlen, iconv_strlen
---проверяешь сколько символов
---далее используешь md5(пароль.соль)
а там какие символы ввел пользователь забей и к тому же получишь чуть чуть безопасности связанные с паролями.
при получении вводимого пароля
---используешь одну из функций strlen, iconv_strlen
---проверяешь сколько символов
---далее используешь md5(пароль.соль)
а там какие символы ввел пользователь забей и к тому же получишь чуть чуть безопасности связанные с паролями.
3. NeuroZ - 07 Октября, 2016 - 09:43:51 - перейти к сообщению
Fart пишет:
в фронт-энде можешь проверять какие символы вводит.
Надо не забывать, что JS имеет свойство отключаться..
Поэтому надежней серверной проверки нету ничего.
Про формирование паролей и безопасность я как раз в курсе.
Еще я в курсе, что регулярки - это еще те капканы... Всегда есть вариант что-то упустить.
Но всё же хочется, чтобы взлом аккаунтов пользователей сводился к минимуму. Поэтому одно из требований - такие пароли. Понятно, что это не панацея, но всё же лучше, чем просто проверять на длину.
4. Мелкий - 07 Октября, 2016 - 09:53:48 - перейти к сообщению
NeuroZ пишет:
одно из требований - такие пароли
NeuroZ пишет:
16}$/i
Ну-ну.
Если есть явное требование предметной области (работа с деньгами и/или конфиденциальными данными) - проверяйте минимальную сложность пароля. Но никогда не ограничивайте максимальную.
Операция редкая, но связана с безопасностью. Значит должна иметь очевидное поведение. Если вы плохо знаете регулярки, то лучше будет максимально простой вариант:
PHP:
скопировать код в буфер обмена
скопировать код в буфер обмена
- // нет цифр
- $isAllowed = false;
- }
- // нет букв
- $isAllowed = false;
- }
- // нет заглавных букв
- $isAllowed = false;
- }
Fart пишет:
---далее используешь md5(пароль.соль)
md5 не имеет и никогда не имел отношения к паролям. Это быстрый метод хеширования для создания отпечатка и верификации корректности данных.
password_hash