Вы делаете тонны манипуляции со строками. Каждое изменение строки занимает немного памяти.
Во-первых, если вы хотите сохранить структуру, вы должны переключиться с ArrayList
на List<int>
, чтобы он содержал ваш список догадок, и использовать строки только тогда, когда вы вынуждены при передаче строки ключей в расшифровку функция. Кроме того, никогда не используйте ArrayList
для современного программирования, единственная причина, по которой класс существует, - это обратная совместимость со старым кодом. Если вы действительно должны иметь список, который может принимать все, используйте вместо этого List<object>
, но использование указанного списка c, например List<int>
или List<string>
, работает намного лучше.
Однако posiblesClves3
совершенно не требуется Вы можете просто поместить расшифрованный код прямо в поле l oop. Вы также можете сравнить с числом 0xFFFFFF
в вашем для l oop, и вам не нужно сравнение строк. Также вы можете использовать .ToString("X6")
вместо .ToString(X).PadLeft('0',6)
, что экономит вам дополнительную строку на л oop.
Вот очень урезанная версия вашего кода с использованием как можно меньшего количества строк.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using System.Collections;
namespace ProyectoEspiasSergioSolorzanoAriste
{
class Program
{
static void Main(string[] args)
{
var encryptedText = "7iuYS0z/aIp/f+dNjJCkLULBY+3K5F3B4BYBSNoKEc0g8M3lcFFECqHMb2E9rv12sUCjJA/ve1uCxGNL/feZjEFBpANh0tAs/5+97+L+kuL0wZI78Ux40XhEbyTSIoEfGY4GsM7uce7PzZ1sYSb9Kql/0j6Qu9RGWXqJMPF9XYYv5FxgNLJ8y8bzoGcZVf6h7k95a5YoX6KP9T20TMPJcqUf+nEYTo2Y54K6vU8pAUC0UxTnLlxakzCT+QBIhXl0SRS6/36rbkSppNYd0GLq5HRN+/BEFvGF+0p9fRZQ5hyqEmy8OEFqFtSBeA0LotyszSHq1ZqJA56rqXjoSZZm6ljcITolbx101eNH7x0S1zjzNv1dovIsaONQfbt6ZUlldxFDSVrQrTrsso32LIO8JWGsUCp6mc8VhL5hAA8xY7d8cwSoDzlm7+46fqP6pEnL/dArS9As+vE6ZWh+JYmDQJ5pEs2KDEVTQb5o4rFB79QE8EmmysvsC23baZXsO5Qa1GqeMcUZ2mORTHUs1GTKhqY1DpOGtXbykpXs+0RlmNzvIEASf5yOqOnHOvhzxGGzjvrEiAc61t6DB/frmGlokVZEuZcziwcb883jCRwXOb21R/AtCaf4A1VHbVq/xoeS/XRExgOle6xZGibNMUHrvprtnj9Hhdwz4H0p6m6T3sR6GAzhzAl12MzMdG4VM6QFJsSND5nNQRlHByYTZ5ebWTupKbSIDPCaOu4FydZuJj4=";
Console.WriteLine("After Encryption Text = " +
encryptedText + "/n");
var solucionesDecrypt = new List<string>(0xFFFFFF); //Presize the list to hold all the values.
for (int i = 0; i <= 0xFFFFFF; i++)
{
var decryptedText = ClsTripleDES.Decrypt(encryptedText, i.ToString("X6"));
solucionesDecrypt.Add(decryptedText);
}
foreach (string decryptedText in solucionesDecrypt)
{
Console.WriteLine("After Decryption Text = " + decryptedText + "/n");
}
Console.ReadLine();
}
}
}