public async Task Decrypt() { var keyQueueTask = Task.Run(() => KeepKeyQueueData()); while ( keyQueueTask.Status != TaskStatus.RanToCompletion || PendingKeysCount != 0) { for (int i = 0; i < tasks.Length; i++) { if (PendingKeysCount <= 0) { await Task.Delay(1); break; } if (tasks[i] == null || tasks[i].Status == TaskStatus.RanToCompletion) { tasks[i] = Task.Run(() => ProccessNextKeyTask(i)); } } } keyQueueTask.Wait(); MyFileManager.WriteBuilderToFile(); MyFileManagerSuccesses.WriteBuilderToFile(); MyFileManagerBad.WriteBuilderToFile(); }
private void ProcessAscii(DecryptedObject decryptedObject) { bool foundSomething = false; string sDecryptOrig = decryptedObject.GetDecodedString(Encoding.UTF8); var sDecyptPrintable = new StringBuilder(sDecryptOrig).RemoveAsciiControllChars().RemoveNewLines().RemoveChar(';').GetString(); if (new StringBuilder(sDecryptOrig).CountChar("[½|¿]") > 100) { string ln = $";{decryptedObject.GetBytesKeyHex()};;;;;;;;;;;;;{sDecyptPrintable}"; MyFileManagerBad.ConcatNewLine(ln); return; } string sProcessed = new StringBuilder(sDecryptOrig).RemoveNoneAlphanumericChars().GetString(); int cDChars = new StringBuilder(sDecryptOrig).CountChars(); //Numero de Caracteres en String Decriptada int cPChars = new StringBuilder(sProcessed).CountChars(); //Numero de Caracteres en String Procesada int cCharDif = cDChars - cPChars; // Diferencia Numercia de Caracteres entre original y procesada if (Regex.Match(sDecryptOrig, regex, RegexOptions.IgnoreCase).Success) { foundSomething = true; } //var sDecyptPrintable = new StringBuilder(sDecryptOrig).RemoveNewLines() // .RemoveChar(';').RemoveChar('\n').RemoveChar('?').RemoveAsciiControllChars().GetString(); int cDIsAlpha = new StringBuilder(sDecryptOrig).CountAlphanumericChars(); //Numero de Caracteres Alphanumericos int cDNoAlpha = new StringBuilder(sDecryptOrig).CountNoAlphanumericChars(); //Numero de Caracteres No Alphanumericos int cDIsHex = new StringBuilder(sDecryptOrig).CountHexadecimalChars(); //Numero de Caracteres Hexadecimales int cDNoHex = new StringBuilder(sDecryptOrig).CountNoHexadecimalChars(); //Numero de Caracteres No Hexadecimales //int cPIsAlpha = new StringBuilder(sProcessed).CountAlphanumericChars(); //Numero de Caracteres Alphanumericos int cPNoAlpha = new StringBuilder(sProcessed).CountNoAlphanumericChars(); //Numero de Caracteres No Alphanumericos //int cPIsHex = new StringBuilder(sProcessed).CountHexadecimalChars(); //Numero de Caracteres Hexadecimales int cPNoHex = new StringBuilder(sProcessed).CountNoHexadecimalChars(); //Numero de Caracteres No Hexadecimales string line = $"{foundSomething}"; line += $";{decryptedObject.GetBytesKeyHex()}"; //Llave utilizada line += $";{cDChars};{cPChars}"; //Numero de Caracteres en la String line += $";{cCharDif}"; // Diferencia Numercia de Caracteres entre original y procesada //cPIsAlpha line += $";{cDIsAlpha};"; //Numero de Caracteres Alphanumericos original y procesada line += $";{cDNoAlpha};{cPNoAlpha}"; //Numero de Caracteres No Alphanumericos original y procesada //cPIsHex line += $";{cDIsHex};"; //Numero de Caracteres Hexadecimales original y procesada line += $";{cDNoHex};{cPNoHex}"; //Numero de Caracteres No Hexadecimales original y procesada line += $";{sProcessed}"; // String Procesada line += $";{sDecyptPrintable}"; // String original sin saltos de linea ni ';' if (foundSomething == true) { MyFileManagerSuccesses.ConcatNewLine(line); } MyFileManager.ConcatNewLine(line); }