Техническое задание #4: Валидатор пароля
Описание
Валидация пароля — критически важный компонент системы безопасности любого приложения. Слабый пароль может привести к несанкционированному доступу и компрометации данных пользователя. В этой задаче вы реализуете валидатор пароля, который проверяет соответствие пароля набору критериев безопасности: минимальная длина, наличие букв разного регистра, цифр и специальных символов. Программа должна давать подробный отчёт о каждом нарушении, помогая пользователю создать надёжный пароль.
Задача
Реализовать валидатор пароля. Программа должна принимать пароль от пользователя и проверять его по пяти критериям безопасности, после чего выводить подробный отчёт о соответствии пароля требованиям.
Функциональные требования
- Объявите переменную
password(типstring), которая будет хранить пароль, введённый пользователем. - Объявите переменные типа
boolдля отслеживания каждого критерия:hasUpper— содержит ли пароль заглавные буквыhasLower— содержит ли пароль строчные буквыhasDigit— содержит ли пароль цифрыhasSpecial— содержит ли пароль специальные символы
- Создайте переменную (или константу)
specialCharsтипаstring, которая содержит допустимые специальные символы:"!@#$%^&*" - Создайте переменную (или константу)
minLengthтипаintсо значением8для минимальной длины пароля. - Реализуйте цикл
for-range, который проходит по каждой руне (символу) пароля:- Получите текущую руну
- Устанавливайте соответствующие флаги
trueпри обнаружении каждого типа символа
- После завершения цикла проверьте
len(password) >= minLengthдля проверки минимальной длины. - Реализуйте логику вывода результатов:
- Если все 5 критериев выполнены → вывести
✅ Все проверки пройдены!и сообщениеПароль надёжный! 💪 - Если не выполнены некоторые критерии → вывести для каждого невыполненного критерия сообщение
❌с описанием проблемы - Выводить итоговый результат:
Пароль надёжный!илиПароль слабый 😟
- Если все 5 критериев выполнены → вывести
- После вывода результатов показать количество выполненных критериев из 5.
Технические требования
- Ввод данных:
- Использовать пакет
fmtс функциейfmt.Scanln()для считывания пароля от пользователя
- Использовать пакет
- Вывод сообщений:
- Использовать
fmt.Println()иfmt.Printf()для вывода результатов проверки
- Использовать
- Проверка символов:
- Пакет
unicode - Пакет
strings
- Пакет
- Логика программы:
- Использовать цикл
for-rangeдля итерации по каждому символу пароля - Использовать переменные типа
boolдля отслеживания каждого критерия - Использовать условия
if-elseдля вывода отчёта по каждому критерию - Использовать счётчик для подсчёта выполненных критериев
- Использовать цикл
Пример работы программы
Вариант 1: Короткий пароль без спец. символов
Введите пароль: Pass123
❌ Длина менее 8 символов
❌ Нет специального символа
Пароль слабый 😟
Выполнено критериев: 3 из 5
Вариант 2: Нет заглавной буквы
Введите пароль: secure1234!
❌ Нет заглавной буквы
Пароль слабый 😟
Выполнено критериев: 4 из 5
Вариант 3: Только цифры и спец. символы
Введите пароль: 12345!@#$
❌ Нет заглавной буквы
❌ Нет строчной буквы
Пароль слабый 😟
Выполнено критериев: 3 из 5
Вариант 4: Надёжный пароль
Введите пароль: SecurePass123!
✅ Все проверки пройдены!
Пароль надёжный! 💪
Выполнено критериев: 5 из 5
Вариант 5: Надёжный пароль (другой пример)
Введите пароль: MyPassword@2025
✅ Все проверки пройдены!
Пароль надёжный! 💪
Выполнено критериев: 5 из 5