Подбор строк

inklesspen

Не пишу модули под LSD :с
Сообщения
1,775
Реакции
967
Смотрите, есть пароль, от 1 до 64х символов, и его нужно угадать.
Я хочу сделать много-много циклов для их подбора, но как сделать - не знаю.

Ну типо проверять по кол-ву символов, например
for(int i = 0;i<64;i++)
и дальше генерирует строки
от "a" до "z",
потом "aa", "ab", и так до "zz", и так до 64х символов
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #2
@inklesspen, а какова процедура проверки правильности пароля?
 

Reiko1231

AlexTheRegent
Сообщения
508
Реакции
1,336
C-подобный:
new const dict[] = {'a', 'b', 'c'};

public OnPluginStart()
{
    new String:password[64];
    for ( new i = 0; i < 5; ++i ) {
        Generate(i, password);
    }
}

Generate(position, String:result[])
{
    if ( position == -1 ) {
        PrintToServer(result);
    }
    else {
        for ( new i = 0; i < sizeof(dict); ++i ) {
            result[position] = dict[i];
            Generate(position-1, result);
        }
    }
}
Если предположить, что пароль содержит большие-маленькие буквы англ. алфавита и цифры, то мы получим 62 символа. пароль длиной в 1 символ это 62 комбинации, в 2 символа это 62^2, если пароль из 8 символов, это уже 62^8. Если взять проц 4 ядра по 4ГГц, получим 16 000 000 000 операций в секунду, значит на подбор потребуется 13646 секунд, что почти 4 часа (без учета самой сверки пароля). А если же пароль из 9 символов, то на подбор потребуется 235 часов (почти 10 дней). Так что до 64ех символов вы вряд ли дойдете.
 

Черная вдова

Участник
Сообщения
2,795
Реакции
670
C-подобный:
new const dict[] = {'a', 'b', 'c'};

public OnPluginStart()
{
    new String:password[64];
    for ( new i = 0; i < 5; ++i ) {
        Generate(i, password);
    }
}

Generate(position, String:result[])
{
    if ( position == -1 ) {
        PrintToServer(result);
    }
    else {
        for ( new i = 0; i < sizeof(dict); ++i ) {
            result[position] = dict[i];
            Generate(position-1, result);
        }
    }
}
Если предположить, что пароль содержит большие-маленькие буквы англ. алфавита и цифры, то мы получим 62 символа. пароль длиной в 1 символ это 62 комбинации, в 2 символа это 62^2, если пароль из 8 символов, это уже 62^8. Если взять проц 4 ядра по 4ГГц, получим 16 000 000 000 операций в секунду, значит на подбор потребуется 13646 секунд, что почти 4 часа (без учета самой сверки пароля). А если же пароль из 9 символов, то на подбор потребуется 235 часов (почти 10 дней). Так что до 64ех символов вы вряд ли дойдете.
Старый проц на 4 ггц также быстро подбирает как и новый на 4?
 

inklesspen

Не пишу модули под LSD :с
Сообщения
1,775
Реакции
967
Панятна... спасибо что отпугнули от такой идеи)
 
Сверху Снизу