Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: Базы данных, ADO.NET
Войти
Регистрация
Восстановить пароль
 
Geomatika
0 / 0 / 0
Регистрация: 29.06.2016
Сообщений: 5
1

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

05.01.2017, 14:48. Просмотров 234. Ответов 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 ?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.01.2017, 14:48
Ответы с готовыми решениями:

Что делать со значением первичного ключа только что созданной таблицы?
Здравствуйте. Есть таблица, в качестве первичного ключа у которой колонка ID,...

В каком направлении стоит думать в случае, если хочу URL делать короче в отображении
Есть такая задача. В приложении на языке c# в таблицу в формате xsl выдаются...

Что делать с recordset?
Как я могу изменит такой код? SQL = &quot;SELECT * FROM tbl_TestStations&quot; ...

Что делать новичку?
Народ, что делать? Решил изучать C#, а в нете куча книг, где 300 стр....

Как быть, что делать?
Программа не может элементарно посчитать три числа нужный элемент кода: 107,...

3
OwenGlendower
Супер-модератор
Эксперт .NET
10236 / 8836 / 3780
Регистрация: 17.03.2014
Сообщений: 17,773
Записей в блоге: 1
05.01.2017, 15:01 2
Geomatika, чтобы перебрать все комбинации совершенно не нужно все их хранить.

Цитата Сообщение от Geomatika Посмотреть сообщение
уважаемый Компилятор выкидывает исключение OutOfMemoryException
[Режим зануды ВКЛ] Среда исполнения, а не компилятор. [Режим зануды ВЫКЛ]
0
Geomatika
0 / 0 / 0
Регистрация: 29.06.2016
Сообщений: 5
05.01.2017, 15:05  [ТС] 3
Цитата Сообщение от OwenGlendower Посмотреть сообщение
чтобы перебрать все комбинации совершенно не нужно все их хранить.
принцип в том, что бы добавить к имеющемся паролю возможные вариации, далее проверить каждую и к каждой добавить далее вариации, некое дерево получается, если прервать одну из цепей дальше пути не будет, а он необходим.
0
magirus
Почетный модератор
Эксперт по компьютерным сетямЭксперт Windows
27967 / 15693 / 960
Регистрация: 15.09.2009
Сообщений: 67,824
Записей в блоге: 78
05.01.2017, 15:08 4
я Вам рекомендую правила почитать. закрыто.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.01.2017, 15:08

MVVM + DI + IOC = а что делать с дочерними VM?
допустим есть Company, у него есть список Employee, у каждого список...

HttpWebRequest - не передается свойство KeepAlive, что делать ?
HttpWebRequest - не передается свойство KeepAlive, что делать ? public...

Не работает запрос уже незнаю что делать
string commstr = &quot;INSERT INTO movie (Title, Published,Previewed,Year,TypeID)...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru