Проект Bruteforce Attack

Я создаю простую «атаку грубой силы» для проекта (не связанного со школой). Может ли кто-нибудь сказать мне, какая часть кода неверна, чтобы получить эти ошибки.

Код:

#include <string>
using namespace std;
//Password array
std::string passwordArray;
//Lowercare character array
std::string lower = { "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" };
//Uppercase character array
std::string upper = { "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" };
//Digits array
std::string digits = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9" };

private void setupCharArray()
{
if (ckhLower.Checked)
{
characterArray.AddRange(lower);
}

if (chkUpper.Checked)
{
characterArray.AddRange(upper);
}

if (chkDigits.Checked)
{
characterArray.AddRange(digits);
}
}

private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
brute();
}

поэтому я пытаюсь скомпилировать этот код, используя MinGW

g ++ bruteforce.cpp -o bruteforce.exe

и я получаю эти сообщения об ошибках

c:\Users\Lotty Playle\Documents>g++ bruteforce.cpp -o bruteforce.exe
bruteforce.cpp:7:66: error: in C++98 'lower' must be initialized by constructor,
not by '{...}'
bruteforce.cpp:7:66: error: could not convert '{"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"}' from '<brace-enclosed initializer list>' to 'std::string {aka
std::basic_string<char>}'
bruteforce.cpp:10:66: error: in C++98 'upper' must be initialized by constructor
, not by '{...}'
bruteforce.cpp:10:66: error: could not convert '{"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"}' from '<brace-enclosed initializer list>' to 'std::string {ak
a std::basic_string<char>}'
bruteforce.cpp:12:73: error: in C++98 'digits' must be initialized by constructo
r, not by '{...}'
bruteforce.cpp:12:73: error: could not convert '{"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"}' from '<brace-enclosed initializer list>' to 'std::string {ak
a std::basic_string<char>}'
bruteforce.cpp:14:1: error: expected unqualified-id before 'private'

Если кто-нибудь знает, что я делаю неправильно, они могут показать мне.

Д х

1

Решение

Массив строк должен выглядеть так: (с [])

std::string lower[] = { "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" };

std::string символов будет выглядеть так:

std::string lower = "abcdefghijklmnopqrstuvwxyz";

Обратите внимание, что используя кучу std::strings для представления символов крайне неэффективно. Вы должны использовать массив символов или просто работать с арифметикой ascii.

4

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector