Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.IO;
- using System.Threading.Tasks;
- namespace ConsoleApplication2
- {
- class Program
- {
- private static string lösenord = "";
- private static string resultat;
- private static int lösenordsLängd;
- private static bool ärRätt = false;
- private static bool ärLika = false;
- private static bool felaktigChar = true;
- private static int teckenFörAttTestaLängden = 0;
- private static double beräknadeTangenter = 0;
- private static char[] lösenordArray;
- private static char[] teckenFörTest =
- {
- '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','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','1','2','3','4','5',
- '6','7','8','9','0','!','#','@','-',
- };
- static void Main(string[] args)
- {
- while(lösenordsLängd != 4 && lösenordsLängd != 5 && felaktigChar == true) {
- Console.WriteLine("Skriv in ett lösenord bestående av 4-5 tecken (a-z, A-Z, 0-9, !, #, @, -)");
- lösenord = Console.ReadLine();
- lösenordArray = lösenord.ToCharArray();
- lösenordsLängd = lösenordArray.Length;
- Console.Clear();
- for (int i = 0; i < lösenord.Length; i++)
- {
- ärLika = false;
- for (int j = 0; j < teckenFörTest.Length; j++)
- {
- if (lösenordArray[i] == teckenFörTest[j])
- {
- ärLika = true;
- break;
- }
- }
- if (!ärLika)
- {
- Console.WriteLine("Error: lösenord innehåller ogilltiga tecken!");
- Console.ReadLine();
- Console.Clear();
- felaktigChar = true;
- break;
- }
- if (ärLika == true)
- {
- felaktigChar = false;
- break;
- }
- }
- }
- var tidStartad = DateTime.Now;
- Console.WriteLine("BruteForce Startat - {0}", tidStartad.ToString());
- teckenFörAttTestaLängden = teckenFörTest.Length;
- var estimeradLösenordsLängd = 3;
- while (!ärRätt)
- {
- estimeradLösenordsLängd++;
- startaBruteForce(estimeradLösenordsLängd);
- }
- Console.WriteLine("Lösenord matchat - {0}", DateTime.Now.ToString());
- Console.WriteLine("Tid passerad: {0}s", DateTime.Now.Subtract(tidStartad).TotalSeconds);
- Console.WriteLine("Löst lösenord: {0}", resultat);
- Console.WriteLine("Beräknade tangenter: {0}", beräknadeTangenter);
- Console.ReadLine();
- }
- private static void startaBruteForce(int tangentLängd)
- {
- var tangentChars = skapaCharArray(tangentLängd, teckenFörTest[0]);
- var indexAvSenasteChar = tangentLängd - 1;
- skapaNyTangent(0, tangentChars, tangentLängd, indexAvSenasteChar);
- }
- private static char[] skapaCharArray(int längd, char defaultChar)
- {
- return (from c in new char[längd] select defaultChar).ToArray();
- }
- private static void skapaNyTangent(int nuvarandeCharPosition, char[] tangentChars, int tangentLängd, int indexAvSenasteChar)
- {
- var nästaCharPosition = nuvarandeCharPosition + 1;
- for (int i = 0; i < teckenFörAttTestaLängden; i++)
- {
- tangentChars[nuvarandeCharPosition] = teckenFörTest[i];
- if (nuvarandeCharPosition < indexAvSenasteChar)
- {
- skapaNyTangent(nästaCharPosition, tangentChars, tangentLängd, indexAvSenasteChar);
- }
- else
- {
- beräknadeTangenter++;
- if ((new String(tangentChars)) == lösenord)
- {
- if (!ärRätt)
- {
- ärRätt = true;
- resultat = new String(tangentChars);
- }
- return;
- }
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement