Форум программистов, компьютерный форум CyberForum.ru

C# и базы данных, ADO.NET

Войти
Регистрация
Восстановить пароль
 
Geomatika
0 / 0 / 0
Регистрация: 29.06.2016
Сообщений: 5
#1

Что делать если нужен компьютер NASA ? - C#

05.01.2017, 14:48. Просмотров 147. Ответов 3
Метки нет (Все метки)

Доброго времени суток.
Я тут планирую пенгатон взять под контроль.
Нужно небольшая хелпа, сталкнулся с такой проблемой: код производит брутфорс всех вариаций произвольного алфавита и сохраняет их в Queue, последовательно возвращая, проверяя и удаляя первый элемент Queue и далее плюсуя в конец Queue остальные вариации равные длине алфавита, в моем случае 36(латинский алфавит + цифры). Тобишь, если по русски, каждый проход цикла изменения в Queue таковы: -1+36=+35. Так вот. На 1 695 815 попытке, проверяя вариации 4 символьного пароля уважаемый Компилятор выкидывает исключение OutOfMemoryException, оно и не удивительно, ведь на данном этапе в Queue находится 59 353 529 вариантов пароля.
Осознавая, что это перебор только 4 циферного пароля, а он, простите за выражение, должен доходить до 36 символьного....я понимаю, что никакие хранилища данных не смогут уместить этот объем, ибо он будет в миллионы(или миллиарды) раз больше числа 59 353 529.
Честно говоря, насколько мне хватает моих рассуждений, я понимаю что это невозможно, ибо к каждому элементу нужно плюсовать вариации, дабы они не потерялись. Но, я все же хочу услышать Ваше мнение, может кто-то знает какой-нибудь интересный ход, который поможет мне накидать кораблей в пентагонский главный компьютер.



ЗЫ. Возможно некоторым покажется, что я занимаюсь ерундой, но мне интересно изучить брутфорс вдоль и поперек. Прикрепляю пару скринов и фрагмент кода, для тех, кто не любит читать длинный нудный пост. Заранее спасибо за уделенное внимание.
Фрагмент кода
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
            StreamReader sr = new StreamReader(road);
            char[] alphabet = "abcdefghijklmnopqrstuvwxyz0123456789".Distinct().ToArray();
            int score = 1;
            string password;
            string truepas = sr.ReadToEnd();
            Queue<string> q = new Queue<string>();
            q.Enqueue(String.Empty);
            while ((password = q.Dequeue()) != "99999999999999999999999999999999999999999999")
            {
                foreach (char ch in alphabet)
                {
                    q.Enqueue(password + ch);
                }
                if (password==truepas)
                {
                    goto F1; 
                }
                else
                {
                    Console.WriteLine("Неудачная попытка номер {0} : {1}", score, password);
                    score++;
                }
            }
        F1: Console.WriteLine("Пароль {0} найден с {1} попытки", password, score);
            Console.ReadKey();

Номер попытки/пароль:
Что делать если нужен компьютер NASA ?
Значения перем. при исключении:
Что делать если нужен компьютер NASA ?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.01.2017, 14:48     Что делать если нужен компьютер NASA ?
Посмотрите здесь:

Что делать с recordset? C#
C# Можно ли делать так...
В чем лучше делать БД, чтобы она нормально работала с программой? C#
ADO.NET, как делать хорошо? C#
не хочет делать UPDATE C#
C# Перенос БД на другой компьютер
C# Не работает запрос уже незнаю что делать
Написать запрос для одной таблички, который должен делать INSERT C#
Как делать выборку вопросов из БД в программе тестирования C#
Обновить если запись есть; Создать если записи нет C#
Стоит ли делать отдельную базу для комментариев? C# MS SQL
Перенос БД на другой компьютер C#

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
OwenGlendower
Модератор
Эксперт .NET
5731 / 4742 / 1724
Регистрация: 17.03.2014
Сообщений: 8,788
Записей в блоге: 1
05.01.2017, 15:01     Что делать если нужен компьютер NASA ? #2
Geomatika, чтобы перебрать все комбинации совершенно не нужно все их хранить.

Цитата Сообщение от Geomatika Посмотреть сообщение
уважаемый Компилятор выкидывает исключение OutOfMemoryException
[Режим зануды ВКЛ] Среда исполнения, а не компилятор. [Режим зануды ВЫКЛ]
Geomatika
0 / 0 / 0
Регистрация: 29.06.2016
Сообщений: 5
05.01.2017, 15:05  [ТС]     Что делать если нужен компьютер NASA ? #3
Цитата Сообщение от OwenGlendower Посмотреть сообщение
чтобы перебрать все комбинации совершенно не нужно все их хранить.
принцип в том, что бы добавить к имеющемся паролю возможные вариации, далее проверить каждую и к каждой добавить далее вариации, некое дерево получается, если прервать одну из цепей дальше пути не будет, а он необходим.
magirus
Супер-модератор
Эксперт по компьютерным сетямЭксперт Windows
25959 / 14421 / 800
Регистрация: 15.09.2009
Сообщений: 62,001
Записей в блоге: 64
05.01.2017, 15:08     Что делать если нужен компьютер NASA ? #4
я Вам рекомендую правила почитать. закрыто.
Yandex
Объявления
05.01.2017, 15:08     Что делать если нужен компьютер NASA ?
Закрытая тема Создать тему
Опции темы

Текущее время: 06:52. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru