Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
erampa
1 / 1 / 0
Регистрация: 11.06.2014
Сообщений: 43
#1

Все возможные комбинации пароля. Метод грубой силы (полный перебор) - C++

07.05.2015, 14:35. Просмотров 1733. Ответов 7
Метки нет (Все метки)

Вопрос собственно заключается в том, почему при выводе в консоль всех возможных комбинаций пароля, пишет непонятные символы,как показано на скриншоте.
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
#include <iostream>
#include <conio.h>
#include <Windows.h>
using namespace std;
int main()
{
    setlocale(LC_CTYPE,"RUSSIAN");
    char sumbol[26] = { 'a', 'b', 'c', 'd' , 'e' , 'f', 'g', 'h', 'i', 'j' , 'k ', 'l' , 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v' , 'w', 'x', 'y', 'z'};
    char pass [256];
    char perebor[256];
    cout << "Введите пароль: ";
    cin >> pass;
    cout << "Ваш пароль: " << pass << endl;
 
    
    
    for(int g = 0; g < 26; g++)
    { 
        
        perebor[0] = sumbol[g];
        
        for(int b = 0; b < 26; b++)
        {
                
                perebor[1] = sumbol[b];
            
            for(int c = 0; c < 26; c++)
            {
                perebor[2] = sumbol[c];
                Sleep(5000);
            cout << perebor << endl;
            if(pass == perebor)
            {
                cout << "Полный перебор показал, что ваш пароль: " << perebor << endl;
            
            }
            }
        }
    
        
    }
    _getch();
    return 0;
}
Вот собственно скриншот непонятны мне символов,которые взялись неизвестно откуда( для меня).
Все возможные комбинации пароля. Метод грубой силы (полный перебор)
http://www.cyberforum.ru/cpp-beginners/thread760100.html
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.05.2015, 14:35
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Все возможные комбинации пароля. Метод грубой силы (полный перебор) (C++):

Все возможные комбинации 5 чисел
В общем задача такая: Нужно, чтобы программа выдавала все возможные комбнации...

Все возможные комбинации из 10 цифр по n
есть 10 цифр, нужно написать программу, где вводишь n-кол-во чисел в...

Все возможные комбинации из 4 цифр
Доброго времени суток! Прошу помочь с такой задачей: Пользователь вводит...

Найти все возможные комбинации четырех букв
Есть задача с 4 буквами.A,B,C,D нужно найти все возможные комбинации этих букв....

Найти все возможные комбинации по номеру карты
Все привет!!! Выручайте с этим кодом уже вожусь почти неделю и не могу с ним...

7
Velesthau
524 / 426 / 159
Регистрация: 25.11.2014
Сообщений: 1,662
07.05.2015, 14:39 #2
Лучший ответ Сообщение было отмечено erampa как решение

Решение

Цитата Сообщение от erampa Посмотреть сообщение
почему при выводе в консоль всех возможных комбинаций пароля, пишет непонятные символы,как показано на скриншоте
Потому что у тебя нет символа окончания строки - нулевого. Как cout должен определить, где у тебя perebor заканчивается? Как он узнает, что должен вывести 2 символа из массива, а не 10, или 100?
2
erampa
1 / 1 / 0
Регистрация: 11.06.2014
Сообщений: 43
07.05.2015, 14:43  [ТС] #3
Спасибо большое,сейчас буду разбираться ...!)
0
magapolkilo
0 / 0 / 0
Регистрация: 16.06.2015
Сообщений: 22
05.06.2016, 10:17 #4
он очень долго перебирает , можно его как нибудь ускорить? Скорость 1 пароль примерно за 5-7 секунд
0
Sergio Leone
2462 / 1107 / 579
Регистрация: 07.06.2014
Сообщений: 3,259
05.06.2016, 10:46 #5
Цитата Сообщение от magapolkilo Посмотреть сообщение
он очень долго перебирает , можно его как нибудь ускорить?
выкинь паузы из кода, вроде
C#
1
Sleep(5000);
0
magapolkilo
0 / 0 / 0
Регистрация: 16.06.2015
Сообщений: 22
06.06.2016, 15:02 #6
Цитата Сообщение от Sergio Leone Посмотреть сообщение
выкинь паузы из кода, вроде
Да, я уже пробовал это, но возникла другая проблема. Конец перебора = zzz , все результаты сверху до zaa примерно исчезают , то есть видно только результаты zaa ... zzz , как сделать чтоб все результаты были видны. И чтоб длина пароля равнялась не 3м символам, а более 3х
0
rikimaru2013
C++ Game Dev
2471 / 1140 / 348
Регистрация: 30.11.2013
Сообщений: 3,709
06.06.2016, 16:05 #7
Цитата Сообщение от magapolkilo Посмотреть сообщение
как сделать чтоб все результаты были видны
зачем? ..... Процесс вывода на экран тоже дорогостоящая операция

Добавлено через 19 минут
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
#include <iostream>
#include <conio.h>
#include <cassert>
#include <Windows.h>
using namespace std;
 
#define MAX_PASSWORD_LENGTH 256
 
int main()
{
    setlocale( LC_CTYPE, "RUSSIAN" );
 
    char pass[ MAX_PASSWORD_LENGTH ];
    char perebor[ MAX_PASSWORD_LENGTH ];
    cout << "Введите пароль: ";
    cin >> pass;
    cout << "Ваш пароль: " << pass << endl;
 
    const int passwordSize = strlen( pass );
    assert( passwordSize < MAX_PASSWORD_LENGTH && "Password incorrect" );
 
    int counter = 0;
    for( int i = 0; i < passwordSize; ++i )
    {
        bool found = false;
        for( int ch = 'A'; ch <= 'z'; ++ch )
        {
            if( pass[ counter ] == ch )
            {
                perebor[ counter ] = ch;
                ++counter;
                found = true;
                break;
            }
            if( ch == 'Z' )
            {
                ch = 'a';
                --ch;
            }               
        }
        assert( found && "Password contain incorrect symbol" );
    }
    perebor[ counter ] = '\0';
    cout << "Перебор : " << perebor << endl;
 
    
    system( "pause" );
    return 0;
}
0
magapolkilo
0 / 0 / 0
Регистрация: 16.06.2015
Сообщений: 22
07.06.2016, 13:38 #8
[QUOTE=rikimaru2013;9239859]зачем? ..... Процесс вывода на экран тоже дорогостоящая операция

Добавлено через 19 минут

Окей, если дорогостоящая, то можно как нибудь сохранить результат в блокнот? Чтоб не выводить на консоль все

Добавлено через 21 час 20 минут
Цитата Сообщение от rikimaru2013 Посмотреть сообщение
зачем? ..... Процесс вывода на экран тоже дорогостоящая операция

Добавлено через 19 минут
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
#include <iostream>
#include <conio.h>
#include <cassert>
#include <Windows.h>
using namespace std;
 
#define MAX_PASSWORD_LENGTH 256
 
int main()
{
    setlocale( LC_CTYPE, "RUSSIAN" );
 
    char pass[ MAX_PASSWORD_LENGTH ];
    char perebor[ MAX_PASSWORD_LENGTH ];
    cout << "Введите пароль: ";
    cin >> pass;
    cout << "Ваш пароль: " << pass << endl;
 
    const int passwordSize = strlen( pass );
    assert( passwordSize < MAX_PASSWORD_LENGTH && "Password incorrect" );
 
    int counter = 0;
    for( int i = 0; i < passwordSize; ++i )
    {
        bool found = false;
        for( int ch = 'A'; ch <= 'z'; ++ch )
        {
            if( pass[ counter ] == ch )
            {
                perebor[ counter ] = ch;
                ++counter;
                found = true;
                break;
            }
            if( ch == 'Z' )
            {
                ch = 'a';
                --ch;
            }               
        }
        assert( found && "Password contain incorrect symbol" );
    }
    perebor[ counter ] = '\0';
    cout << "Перебор : " << perebor << endl;
 
    
    system( "pause" );
    return 0;
}



Окей, если дорогостоящая, то можно как нибудь сохранить результат в блокнот? Чтоб не выводить на консоль все
0
07.06.2016, 13:38
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.06.2016, 13:38
Привет! Вот еще темы с решениями:

Нужно вывести все возможные возрастающие 6-ти значные комбинации
Задачка: Нужно вывести все возможные возрастающие 6-ти значные комбинации из...

Вывести все возможные комбинации цепочек в матрице смежности
Есть матрица смежности вида: AB0 BCD DD0 CKN NE0 KB0 Т.е. если в конце...

Написать программу, выводящую все возможные трехзначные комбинации с числами от 0 до 9
Нужно написать программу выводящую все возможный трехзначные комбинации с...

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


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

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

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