From e866abc9e35e62842168d01199e90f2bdfaf774e Mon Sep 17 00:00:00 2001 From: marcinzelent Date: Sat, 17 Mar 2018 17:54:36 +0100 Subject: Fixed everything --- DistributedPasswordCracker.Client/Cracker.cs | 22 ++++---- DistributedPasswordCracker.Client/Program.cs | 34 ++++++++---- DistributedPasswordCracker.Client/dictionary.txt | 2 +- .../Models/ClientConnection.cs | 37 ------------- DistributedPasswordCracker.Server/Program.cs | 63 ++++++++++------------ 5 files changed, 65 insertions(+), 93 deletions(-) delete mode 100644 DistributedPasswordCracker.Server/Models/ClientConnection.cs diff --git a/DistributedPasswordCracker.Client/Cracker.cs b/DistributedPasswordCracker.Client/Cracker.cs index 9363cc2..5e76ae9 100644 --- a/DistributedPasswordCracker.Client/Cracker.cs +++ b/DistributedPasswordCracker.Client/Cracker.cs @@ -26,30 +26,34 @@ namespace DistributedPasswordCracker.Client /// /// Runs the password cracking algorithm /// - public List RunCracking(string [] dictionary) + public string RunCracking(string [] dictionary) { Stopwatch stopwatch = Stopwatch.StartNew(); List userInfos = PasswordFileHandler.ReadPasswordFile("passwords.txt"); - Console.WriteLine("passwd opeend"); + //Console.WriteLine("passwd opeend"); - List result = new List(); + List results = new List(); for(int i = 0; i < dictionary.Length; i++) { String dictionaryEntry = dictionary[i]; IEnumerable partialResult = CheckWordWithVariations(dictionaryEntry, userInfos); - result.AddRange(partialResult); + results.AddRange(partialResult); } stopwatch.Stop(); - Console.WriteLine(string.Join(", ", result)); - Console.WriteLine("Out of {0} password {1} was found ", userInfos.Count, result.Count); - Console.WriteLine(); - Console.WriteLine("Time elapsed: {0}", stopwatch.Elapsed); + //Console.WriteLine(string.Join(", ", results)); + //Console.WriteLine("Out of {0} password {1} was found ", userInfos.Count, results.Count); + //Console.WriteLine(); + //Console.WriteLine("Time elapsed: {0}", stopwatch.Elapsed); - return result; + string output = ""; + for(int i = 0; i < results.Count; i++) + output += $"{results[i].UserName}:{results[i].Password}|"; + + return output; } /// diff --git a/DistributedPasswordCracker.Client/Program.cs b/DistributedPasswordCracker.Client/Program.cs index 1803198..197f62a 100644 --- a/DistributedPasswordCracker.Client/Program.cs +++ b/DistributedPasswordCracker.Client/Program.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.IO; using System.Net.Sockets; +using System.Threading.Tasks; using DistributedPasswordCracker.Client.Models; namespace DistributedPasswordCracker.Client @@ -16,7 +17,7 @@ namespace DistributedPasswordCracker.Client static void Main(string[] args) { Console.Write("Connecting to server... "); - TcpClient clientSocket = new TcpClient("127.0.0.1", 6789); + TcpClient clientSocket = new TcpClient("127.0.0.1", 7777); NetworkStream ns = clientSocket.GetStream(); Console.Write("OK\n"); sr = new StreamReader(ns); @@ -35,24 +36,37 @@ namespace DistributedPasswordCracker.Client string[,] splitDictionary = SplitDictionary(dictionary); if (splitDictionary[0,0] != "") Console.Write("OK\n"); - List result = new List(); + Console.WriteLine("Cracking..."); + List> tasks = new List>(); for(int i = 0; i < NumberOfTasks; i++) { - Console.Write("Running task no." + (i + 1) + "...\n" ); int rowLength = splitDictionary.GetLength(1); string[] chunk = new string[rowLength]; for (int j = 0; j < rowLength; j++) chunk[j] = splitDictionary[i, j]; - result = DecryptPassword(chunk); + tasks.Add(Task.Run(()=>DecryptPassword(chunk))); } - if (result.Count != 0) + + var result = Task.WhenAll(tasks).Result; + if (result.Length != 0) { - sw.WriteLine(result[0].ToString()); + string output = ""; + for (int i = 0; i < result.Length; i++) + output += result[i]; + + Console.Write("Sending results to server..."); + sw.WriteLine(output); + Console.Write("OK\n"); } - else + else { - sw.WriteLine("Nothing Found!"); + Console.Write("FAILED\n"); + Console.Write("Sending notification to server..."); + sw.WriteLine("No passwords cracked!"); + Console.Write("OK\n"); } + Console.WriteLine("Press any key to exit..."); + Console.ReadKey(); } private static string GetData() @@ -105,12 +119,12 @@ namespace DistributedPasswordCracker.Client return splitDictionary; } - private static List DecryptPassword(string[] dictionary) + private static async Task DecryptPassword(string[] dictionary) { Cracking cracker = new Cracking(); var result = cracker.RunCracking(dictionary); return result; -} + } } } diff --git a/DistributedPasswordCracker.Client/dictionary.txt b/DistributedPasswordCracker.Client/dictionary.txt index 9b1618a..e4c8161 100644 --- a/DistributedPasswordCracker.Client/dictionary.txt +++ b/DistributedPasswordCracker.Client/dictionary.txt @@ -1 +1 @@ -A|A acid|A b station|A battery|A bond|A derrick|A la marengo|A la maryland|A level|A major|A minor|A natural|A one|A pole|A powder|A star|A switchboard|A-b-c book|A-b-c method|A-flat|A-flat major|A-shaped|A-sharp|Aani|Aaron|Aaronic|Aaronical|Aaronite|Aaronitic|Aaru|Ab|Ababdeh|Ababua|Abadite|Abama|Abanic|Abantes|Abarambo|Abaris|Abasgi|Abassin|Abatua|Abba|Abbadide|Abbasside|Abbie|Abbott papyrus|Abby|Abderian|Abderite|Abdiel|Abdominales|Abdul-baha|Abe|Abel|Abelia|Abelian|Abelicea|Abelite|Abelmoschus|Abelonian|Abencerrages|Aberdeen|Aberdonian|Aberia|Abhorson|Abie|Abies|Abietineae|Abiezer|Abigail|Abipon|Abitibi|Abkhas|Abkhasian|Ablepharus|Abnaki|Abner|Abo|Abobra|Abongo|Abor-miri|Abraham|Abraham-man|Abrahamic|Abrahamidae|Abrahamite|Abrahamitic|Abram|Abramis|Abranchiata|Abri audit culture|Abrocoma|Abroma|Abronia|Abrus|Absalom|Absaroka|Absent voting|Absi|Absyrtus|Abt system|Abu|Abundantia|Abuta|Abutilon|Abyssinian|Acacia|Acacian|Academic|Academus|Acadia|Acadian|Acadie|Acaena|Acalepha|Acalephae|Acalypha|Acalypterae|Acalyptrata|Acalyptratae|Acamar|Acanthaceae|Acantharia|Acanthia|Acanthocephala|Acanthocephali|Acanthocereus|Acanthodea|Acanthodei|Acanthodes|Acanthodidae|Acanthodii|Acanthodini|Acantholimon|Acanthomeridae|Acanthopanax|Acanthophis|Acanthopteri|Acanthopterygii|Acanthuridae|Acanthurus|Acarapis|Acarida|Acaridea|Acarina|Acarus|Acastus|Acca larentia|Accipiter|Accipitres|Aceldama|Acemetae|Acemetic|Aceph