Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/64: Рейтинг темы: голосов - 64, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 18.01.2018
Сообщений: 19

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

14.01.2020, 19:43. Показов 12979. Ответов 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
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru