Advertisement
Guest User

Untitled

a guest
May 24th, 2018
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.79 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.IO;
  6. using System.Threading.Tasks;
  7.  
  8. namespace ConsoleApplication2
  9. {
  10. class Program
  11. {
  12. private static string lösenord = "";
  13. private static string resultat;
  14.  
  15. private static int lösenordsLängd;
  16.  
  17. private static bool ärRätt = false;
  18. private static bool ärLika = false;
  19. private static bool felaktigChar = true;
  20.  
  21. private static int teckenFörAttTestaLängden = 0;
  22. private static double beräknadeTangenter = 0;
  23.  
  24. private static char[] lösenordArray;
  25.  
  26. private static char[] teckenFörTest =
  27. {
  28. 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j',
  29. 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't',
  30. 'u', 'v', 'w', 'x', 'y', 'z','A','B','C','D','E',
  31. 'F','G','H','I','J','K','L','M','N','O','P','Q','R',
  32. 'S','T','U','V','W','X','Y','Z','1','2','3','4','5',
  33. '6','7','8','9','0','!','#','@','-',
  34. };
  35.  
  36.  
  37.  
  38.  
  39. static void Main(string[] args)
  40. {
  41. while(lösenordsLängd != 4 && lösenordsLängd != 5 && felaktigChar == true) {
  42.  
  43. Console.WriteLine("Skriv in ett lösenord bestående av 4-5 tecken (a-z, A-Z, 0-9, !, #, @, -)");
  44. lösenord = Console.ReadLine();
  45. lösenordArray = lösenord.ToCharArray();
  46. lösenordsLängd = lösenordArray.Length;
  47. Console.Clear();
  48.  
  49. for (int i = 0; i < lösenord.Length; i++)
  50. {
  51. ärLika = false;
  52.  
  53. for (int j = 0; j < teckenFörTest.Length; j++)
  54. {
  55.  
  56.  
  57. if (lösenordArray[i] == teckenFörTest[j])
  58. {
  59.  
  60. ärLika = true;
  61. break;
  62.  
  63. }
  64.  
  65. }
  66.  
  67. if (!ärLika)
  68. {
  69. Console.WriteLine("Error: lösenord innehåller ogilltiga tecken!");
  70. Console.ReadLine();
  71. Console.Clear();
  72. felaktigChar = true;
  73. break;
  74. }
  75.  
  76. if (ärLika == true)
  77. {
  78. felaktigChar = false;
  79. break;
  80.  
  81. }
  82.  
  83.  
  84. }
  85.  
  86.  
  87. }
  88.  
  89. var tidStartad = DateTime.Now;
  90. Console.WriteLine("BruteForce Startat - {0}", tidStartad.ToString());
  91.  
  92. teckenFörAttTestaLängden = teckenFörTest.Length;
  93.  
  94. var estimeradLösenordsLängd = 3;
  95.  
  96. while (!ärRätt)
  97. {
  98. estimeradLösenordsLängd++;
  99. startaBruteForce(estimeradLösenordsLängd);
  100. }
  101.  
  102. Console.WriteLine("Lösenord matchat - {0}", DateTime.Now.ToString());
  103. Console.WriteLine("Tid passerad: {0}s", DateTime.Now.Subtract(tidStartad).TotalSeconds);
  104. Console.WriteLine("Löst lösenord: {0}", resultat);
  105. Console.WriteLine("Beräknade tangenter: {0}", beräknadeTangenter);
  106.  
  107. Console.ReadLine();
  108. }
  109. private static void startaBruteForce(int tangentLängd)
  110. {
  111. var tangentChars = skapaCharArray(tangentLängd, teckenFörTest[0]);
  112. var indexAvSenasteChar = tangentLängd - 1;
  113. skapaNyTangent(0, tangentChars, tangentLängd, indexAvSenasteChar);
  114. }
  115.  
  116. private static char[] skapaCharArray(int längd, char defaultChar)
  117. {
  118. return (from c in new char[längd] select defaultChar).ToArray();
  119. }
  120.  
  121. private static void skapaNyTangent(int nuvarandeCharPosition, char[] tangentChars, int tangentLängd, int indexAvSenasteChar)
  122. {
  123. var nästaCharPosition = nuvarandeCharPosition + 1;
  124. for (int i = 0; i < teckenFörAttTestaLängden; i++)
  125. {
  126. tangentChars[nuvarandeCharPosition] = teckenFörTest[i];
  127. if (nuvarandeCharPosition < indexAvSenasteChar)
  128. {
  129. skapaNyTangent(nästaCharPosition, tangentChars, tangentLängd, indexAvSenasteChar);
  130. }
  131. else
  132. {
  133. beräknadeTangenter++;
  134.  
  135. if ((new String(tangentChars)) == lösenord)
  136. {
  137. if (!ärRätt)
  138. {
  139. ärRätt = true;
  140. resultat = new String(tangentChars);
  141. }
  142. return;
  143. }
  144. }
  145. }
  146. }
  147.  
  148.  
  149. }
  150.  
  151. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement