0 / 0 / 0
Регистрация: 18.01.2018
Сообщений: 19

Проверка требований к паролям

14.01.2020, 19:43. Показов 13077. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, написать программу по проверке требований к паролям
• Программа сообщает пользователю, что ему необходимо придумать пароль длиной не менее пяти символов.
• Программа запрашивает пароль у пользователя до тех пор, пока он не будет соответствовать этому требованию.
• Программа оценивает надёжность введённого пароля и после каждой попытки сообщает её пользователю.
Длина пароля >5 символов + 1 балл
Длина пароля >8 символов + 1 балл
Использование заглавных букв + 1 балл
Использование цифр + 1 балл.
Если в итоге получилось: 0 – надёжность пароля очень низкая; 1 – Низкая; 2 – Средняя; 3 – Высокая; 4 – Очень высокая.
В программе должны быть созданы минимум два метода:
• Для печати на экран сообщения о необходимости ввести пароль и для считывания введённого пароля.
• Для выполнения оценки надёжности пароля.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.01.2020, 19:43
Ответы с готовыми решениями:

Какой алгоритм хеширования применяется к паролям в СУБД Oracle?
Добрый день. Подскажите, какой алгоритм хеширования применяется к паролям в СУБД ORACLE? И 2 вопрос, длина пароля пользователя хранится в...

Постановка требований
Заказчик ставит требования, от которых и производятся работы, как я понимаю. Существует ли какая-либо система управления требованиями?...

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

10
 Аватар для samana
2639 / 1567 / 853
Регистрация: 23.02.2019
Сообщений: 3,876
14.01.2020, 20:11
Я так понимаю, что все эти дополнительные баллы начисляются, только если в пароле есть И прописные буквы И заглавные?
Вот например как оценить такой пароль: QWER1 и такой qwer1 ?

Да и нужно ли запрещать определённые символы, например пробел или другие знаки, которые не являются буквами?
0
0 / 0 / 0
Регистрация: 18.01.2018
Сообщений: 19
14.01.2020, 20:15  [ТС]
samana, получается, что здесь в обоих паролях по 5 символов (+1 балл), так же есть цифры в обоих (+1 балл), но заглавные только в первом варианте (+1 балл), значит 1 вариант это 3 балла - высокая, второй вариант это 2 балла - средняя.
Если бы было по 8 символов то это ещё по +1 баллу к каждому
Да, использовать нужно только буквы и цифры
0
 Аватар для samana
2639 / 1567 / 853
Регистрация: 23.02.2019
Сообщений: 3,876
14.01.2020, 20:21
Цитата Сообщение от TrobL Посмотреть сообщение
в обоих паролях по 5 символов (+1 балл)
Балл даётся только если
Цитата Сообщение от TrobL Посмотреть сообщение
Длина пароля >5 символов
А если и
Цитата Сообщение от TrobL Посмотреть сообщение
Длина пароля >8 символов
то ещё +1. Выходит, что если пароль больше 8 символов, то он автоматически получает +2 балла, я верно понимаю?
0
0 / 0 / 0
Регистрация: 18.01.2018
Сообщений: 19
14.01.2020, 20:28  [ТС]
samana, да, всё верно
0
 Аватар для QuakerRUS
1469 / 1010 / 456
Регистрация: 30.10.2017
Сообщений: 2,799
14.01.2020, 20:35
Лучший ответ Сообщение было отмечено TrobL как решение

Решение

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
using System;
using System.Linq;
 
class Password
{
    public string Pass { get; set; }
 
    static string[] levels = new string[] { "", "низкая", "средняя", "высокая", "очень высокая" };
 
    public Password(string p = "") { Pass = p; }
 
    public void Input()
    {
        string s;
 
        do
        {
            Console.WriteLine("Введите пароль (не менее 5 символов): ");
            s = Console.ReadLine();
        }
        while (s.Length < 5);
 
        Pass = s;
    }
 
    public string Security()
    {
        int result = 0;
 
        if (Pass.Length >= 5) result++;
        if (Pass.Length >= 8) result++;
        if (Pass.Any(x => char.IsUpper(x))) result++;
        if (Pass.Any(x => char.IsDigit(x))) result++;
 
        return levels[result];
    }
}
 
class Program
{
    static void Main()
    {
        Password p = new Password();
        p.Input();
        Console.WriteLine("Надежность пароля: {0}", p.Security());
        Console.ReadKey();
    }
}
1
 Аватар для samana
2639 / 1567 / 853
Регистрация: 23.02.2019
Сообщений: 3,876
14.01.2020, 20:38
Лучший ответ Сообщение было отмечено TrobL как решение

Решение

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
using System;
using System.Linq;
 
 
public class Program
{
    static void Main(string[] args)
    {
        while (true) // этот цикл просто для тестирования, чтобы не запускать программу сто раз.
        {
            string newPass = CreatePasswors();
            Console.WriteLine($"Надёжность пароля: {GetRatePassInPoints(newPass)}.");
            Console.WriteLine();
        }
    }
 
    static string CreatePasswors()
    {
        while (true)
        {
            Console.Write("Введите ваш пароль, не менее 5-ти символов: ");
            string pass = Console.ReadLine();
            if (pass.Length < 5)
            {
                Console.Write("Слишком мало символов, попробуйте ещё раз, нажмите 'Enter'");
                Console.ReadLine();
                Console.Clear();
            }
            else return pass;
        }
    }
 
    static string GetRatePassInPoints(string pass)
    {
        int points = 0;
 
        if (pass.Length > 5)
        {
            Console.WriteLine("-> больше 5-ти символов +1"); points++;
        }
        if (pass.Length > 8)
        {
            Console.WriteLine("-> больше 8-ми символов +1"); points++;
        }
        if (pass.Any(c => char.IsUpper(c)))
        {
            Console.WriteLine("-> есть заглавные буквы +1"); points++;
        }
        if (pass.Any(c => char.IsDigit(c)))
        {
            Console.WriteLine("-> есть цифры +1"); points++;
        }
 
        string[] rates = new string[] { "надёжность пароля очень низкая", "Низкая", "Средняя", "Высокая", "Очень высокая" };
        return rates[points];
    }
 
}
1
0 / 0 / 0
Регистрация: 18.01.2018
Сообщений: 19
14.01.2020, 20:57  [ТС]
samana, спасибо, правда одна проблема, не нужно, чтобы выводились сообщения типа:
больше 5-ти символов +1, больше 8-ми символов +1, есть заглавные буквы +1, есть цифры +1
Просто выводилась степень защиты после этого после ввода по требованию >5-ти символов
0
 Аватар для samana
2639 / 1567 / 853
Регистрация: 23.02.2019
Сообщений: 3,876
14.01.2020, 21:06
Цитата Сообщение от TrobL Посмотреть сообщение
не нужно, чтобы выводились сообщения типа:
Нет, проблем, вы можете изменить код "под себя" как пожелаете! Это всего лишь для наглядности было.
0
0 / 0 / 0
Регистрация: 18.01.2018
Сообщений: 19
14.01.2020, 21:14  [ТС]
samana, понял, подскажите ещё как остановить программу после 1 успешно введённого пароля?
0
 Аватар для samana
2639 / 1567 / 853
Регистрация: 23.02.2019
Сообщений: 3,876
14.01.2020, 21:17
TrobL, просто уберите цикл while в методе Main, он лишь для тестирования. И после этого, программа уже не будет запрашивать новый пароль, если предыдущий был успешным.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.01.2020, 21:17
Помогаю со студенческими работами здесь

Дерево требований проекта
Мне кажется оптимальным древовидный список требований. Ведь в процессе реализации требования проекта могут изменяться, появляться новые. И...

Расчет системных требований
Есть консольное приложение, подскажите, пожалуйста, как расчитать для него минимальные системные требования? Монитор, клава это понятно, а...

Определение системных требований программ
Подскажите какими утилитами или компонентами, ну или другими способами, следует пользоваться для определения минимальных/оптимальных...

Минимум требований к junior c# developer
Подскажите пожалуйста, какими минимальными знаниями нужно владеть джуниору, чтобы претендовать на работу. На что особенно нужно обратить...

Skype - нарушение минимальных требований
Доброго времени суток. Имеется ПК (динозавр) с процессором менее 1 Ггц. Установлена система Win XP, на которой новая версия скайп работала...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

Новые блоги и статьи
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: показать затраченные материалы за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В качестве. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru