public static void RunCracking(List <UserData> passwords, List <string> dictionary) { for (int i = 0; i < dictionary.Count; i++) { string word = dictionary[i]; List <UserDataCleatTxt> partialResult = StringHandler.WordController(word, passwords); } }
/// <summary> /// Takes in an altered word to then see if it's the same hash value as the password /// Takes a list of userdata objects and a string possible password /// </summary> /// <param name="userInfos"></param> /// <param name="possiblePassword"></param> /// <returns></returns> private static List <UserDataCleatTxt> CheckSingleWord(List <UserData> userInfos, string possiblePassword) { var PassCount = 0; char[] charArray = possiblePassword.ToCharArray(); byte[] passwordAsBytes = Array.ConvertAll(charArray, StringHandler.GetConverter()); byte[] hashedPassword = new SHA1CryptoServiceProvider().ComputeHash(passwordAsBytes); List <UserDataCleatTxt> results = new List <UserDataCleatTxt>(); foreach (var encryptedUserInfo in userInfos) { if (CompareBytes(encryptedUserInfo.EncryptedPass, hashedPassword)) { results.Add(new UserDataCleatTxt(encryptedUserInfo.Username, possiblePassword)); PassCount++; Console.WriteLine($"{encryptedUserInfo.Username} {possiblePassword}"); } } return(results); }