[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Регулярка пароля
Страницы: 1, 2
Spydel
Всем привет!
Помогите пожалуйста с регулярным выражением для php.

Задача, чтобы была:
Обязательная проверка латинских в верхнем и нижнем регистре строчных букв и цифр от 5 до 15 символов.
А также чтобы можно было ввести спецсимволы: !, @, #, $,%, ^, &, *,?, _, ~ (запятой нет)
Но спецсимволы вводить не обязательно.
Zzepish
Spydel
а зачем на пароль делать регулярку?
Все-равно в базе хранится хеш
Spydel
Цитата (Zzepish @ 1.07.2014 - 00:37)
Spydel
а зачем на пароль делать регулярку?
Все-равно в базе хранится хеш

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

        if (!preg_match('/^.{5,14}/', $pass)) {
throw new \Exception('Длина пароля должна быть от 5 до 14 символов.');
}

if(!preg_match("/([a-z]+)/", $pass) || !preg_match("/([A-Z]+)/", $pass) || !preg_match("/[!@#$%^&*?_~]/", $pass)) {
throw new \Exception('Используйте, строчные буквы в верхнем и нижнем регистрах, а также специальные символы: @, #, $,%, ^, &, *,?, _, ~');
}
killer8080
Цитата (Spydel @ 1.07.2014 - 11:00)
        if (!preg_match('/^.{5,14}/', $pass)) {
            throw new \Exception('Длина пароля должна быть от 5 до 14 символов.');        }

зачем длину строки проверять регуляркой? blink.gif
Цитата (Spydel @ 1.07.2014 - 11:00)
        if(!preg_match("/([a-z]+)/", $pass) || !preg_match("/([A-Z]+)/", $pass) || !preg_match("/[!@#$%^&*?_~]/", $pass)) {
            throw new \Exception('Используйте, строчные буквы в верхнем и нижнем регистрах, а также специальные символы: @, #, $,%, ^, &, *,?, _, ~');        }

я не понял условие, буквы должны быть и в верхнем, и в нижнем регистре одновременно? Или просто должны быть буквы?
Spydel
Цитата (killer8080 @ 1.07.2014 - 07:18)
Цитата (Spydel @ 1.07.2014 - 11:00)
        if (!preg_match('/^.{5,14}/', $pass)) {
            throw new \Exception('Длина пароля должна быть от 5 до 14 символов.');        }

зачем длину строки проверять регуляркой? blink.gif
Цитата (Spydel @ 1.07.2014 - 11:00)
        if(!preg_match("/([a-z]+)/", $pass) || !preg_match("/([A-Z]+)/", $pass) || !preg_match("/[!@#$%^&*?_~]/", $pass)) {
            throw new \Exception('Используйте, строчные буквы в верхнем и нижнем регистрах, а также специальные символы: @, #, $,%, ^, &, *,?, _, ~');        }

я не понял условие, буквы должны быть и в верхнем, и в нижнем регистре одновременно? Или просто должны быть буквы?

Как лучше сделать проверку длины?
strlen?

Да, большие и маленькие буквы должны быть, а так же хотя бы один из спецсимволов.
kaww
/((?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[\W]).{5,15})/
- если не нужно проверять наличие спец символа, то без (?=.*[\W])
killer8080
Цитата (Spydel @ 1.07.2014 - 11:22)
Как лучше сделать проверку длины?
strlen?

для utf-8 mb_strlen
Spydel
Цитата (kaww @ 1.07.2014 - 07:53)
/((?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[\W]).{5,15})/
- если не нужно проверять наличие спец символа, то без (?=.*[\W])

Спасибо большое!
bestxp
вот таких как spydel я готов убить на месте,

[quote]
— Извините, Ваш пароль используется более 30 дней, необходимо выбрать новый!
— розы
— Извините, слишком мало символов в пароле!
— розовые розы
— Извините, пароль должен содержать хотя бы одну цифру!
— 1 розовая роза
— Извините, не допускается использование пробелов в пароле!
— 1розоваяроза
— Извините, необходимо использовать как минимум 10 различных символов в пароле!
— 1гребанаярозоваяроза
— Извините, необходимо использовать как минимум одну заглавную букву в пароле!
— 1ГРЕБАНАЯрозоваяроза
— Извините, не допускается использование несколько заглавных букв, следующих подряд!
— 1ГребанаяРозоваяРоза
— Извините, пароль должен состоять более чем из 20 символов!
— 1ГребанаяРозаБудетТорчатьИзЗадаЕслиМнеНеДашьДоступПрямоБлинСейчас!
— Извините, не допускается использование символо пунктуации!
— 1ГребанаяРозаБудетТорчатьИзЗадаЕслиМнеНеДашьДоступПрямоБлинСейчас
— Извините, этот пароль уже занят!
[code]
killer8080
[quote=bestxp,1.07.2014 - 14:07][quote]
— Извините, Ваш пароль используется более 30 дней, необходимо выбрать новый!
— розы
— Извините, слишком мало символов в пароле!
— розовые розы
— Извините, пароль должен содержать хотя бы одну цифру!
— 1 розовая роза
— Извините, не допускается использование пробелов в пароле!
— 1розоваяроза
— Извините, необходимо использовать как минимум 10 различных символов в пароле!
— 1гребанаярозоваяроза
— Извините, необходимо использовать как минимум одну заглавную букву в пароле!
— 1ГРЕБАНАЯрозоваяроза
— Извините, не допускается использование несколько заглавных букв, следующих подряд!
— 1ГребанаяРозоваяРоза
— Извините, пароль должен состоять более чем из 20 символов!
— 1ГребанаяРозаБудетТорчатьИзЗадаЕслиМнеНеДашьДоступПрямоБлинСейчас!
— Извините, не допускается использование символо пунктуации!
— 1ГребанаяРозаБудетТорчатьИзЗадаЕслиМнеНеДашьДоступПрямоБлинСейчас
— Извините, этот пароль уже занят!
[code][/quote]
laugh.gif laugh.gif laugh.gif
Spydel
Ребят, вот это классный анекдот.
Хоть посмеюсь))))))))))))
bestxp
а ты знаешь как не смешно пользователю когда ему навязывают вводить

1 иероглиф, 1 букву, 1 цифру и минимум символов в одном пароле, и как он беситься?


когда например его 18 символный пароль не входит в словари, но ему навзявают то что ему не нужно в пароле потому что видите ли админ постарался
paul85
Парни, ну в World of tanks, к примеру, при регистрации тоже проверяется длина пароля, содержание символов и т.п.
twin
paul85
Их тоже поубивать. smile.gif Что за мода нафиг. Я в гугл тоже еле зарегался И уже три раза пароль забыл. Вот точно про гребаную розу.

Самое смешное, гугл то может себе это позволить, а вот Spydel на своем ресурсике такой заботой 90% потенциальных пользователей распугает.


_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.