Что нового
Теневой форум

Добро пожаловать на FSELL- крупнейший теневой форум. У нас Вы сможете найти огромное количество заработка в интернете, купить паспорт, ксиву, оружие, куча многих товаров и услуг, в виде пробива, взлома, нанять киллера. Все это Вы найдете на нашем форуме! Не пренебрегайте услугами Гарант-Сервиса, это убережет Вас от мошенников.

[C#] Настоящий Brute Force aka Полный перебор

Forgeq

Один герой, но так много имён
Продвинутый
Всем Хай! Когда я впервые услышал о Bruteforce, то я представил себе перебор абсолютно все варианты от "a" до over999 "z". Давненько писал полный перебор и вот он, только стоит подумать об исключениях:
Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.IO;

namespace Cycle
{
class Program
{
static void Main(string[] args)
{
string Chars = "Алфавит";
for (int i = 0; i <= 3; i++)
{
foreach (var Password in GetCombinations(Chars.ToArray(), i))
Console.WriteLine(Password);
}
Console.ReadLine();
}
private static IEnumerable<string> GetCombinations(char[] Chars, int MaximumLength)
{
if (MaximumLength < 1) yield break;
foreach (var a in Chars)
{
yield return a.ToString();
foreach (var b in GetCombinations(Chars, MaximumLength - 1)) yield return a + b;
}
}
}
}
Данным кодом можно получить абсолютно все комбинации паролей, но на это уйдёт огромное количество времени. Я не говорю, что это самый лучший способ(скорей наоборот), но это и есть настоящий Brute Force.
Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.IO;

namespace Cycle
{
class Program
{
static void Main(string[] args)
{
Console.Title = "Cycle";
int Attempt = 0;
Console.WriteLine("Введите минимальную длину пароля:");
int MinQuantity = int.Parse(Console.ReadLine());
Console.WriteLine("Введите максимальную длину пароля:");
int MaxQuantity = int.Parse(Console.ReadLine());
string Chars = "aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ0123456789";
for (int i = MinQuantity; i <= MaxQuantity; i++)
{
foreach (var Password in GetCombinations(Chars.ToArray(), i))
{
Attempt++;
Console.WriteLine("Попытка номер:" + Attempt + " | Пароль:" + Password);
StreamWriter file = new StreamWriter("Passwords.txt", true);
file.WriteLine(Password);
file.Close();
}
}
Console.ReadLine();
}
private static IEnumerable<string> GetCombinations(char[] Chars, int MaximumLength)
{
if (MaximumLength < 1) yield break;
foreach (var a in Chars)
{
yield return a.ToString();
foreach (var b in GetCombinations(Chars, MaximumLength - 1)) yield return a + b;
}
}
}
}
 
Вверх