Так что ошибка, которую я получаю, это.Почему моя память заканчивается, когда файл становится большим?
Необработанное исключение типа «System.OutOfMemoryException» произошло в mscorlib.dll
Я никогда не сталкивался с этой ошибки, прежде чем и я посмотрел его на Google.
У меня есть 64-битная система.
У меня есть 16 ГБ оперативной памяти.
Некоторые люди сказали, что мне нужно установить целевую платформу для x64 в свойствах моего проекта, но не заставит ли это так, что только 64-битные системы смогут запускать это приложение?
public static string RC4(string input, string key)
{
StringBuilder result = new StringBuilder();
int x, y, j = 0;
int[] box = new int[256];
for (int i = 0; i < 256; i++)
{
box[i] = i;
}
for (int i = 0; i < 256; i++)
{
j = (key[i % key.Length] + box[i] + j) % 256;
x = box[i];
box[i] = box[j];
box[j] = x;
}
for (int i = 0; i < input.Length; i++)
{
y = i % 256;
j = (box[y] + j) % 256;
x = box[y];
box[y] = box[j];
box[j] = x;
result.Append((char)(input[i]^box[(box[y] + box[j]) % 256]));
}
return result.ToString(); //This would be the line throwing me the error.
}
Потому что каждый второй я добавляю новый текст с клавиатуры на текстовый файл. Поэтому давайте скажем, что я набираю abc
в первую секунду, когда он добавит, что теперь, если я наберу def
в следующую секунду, он добавит это. Все это происходит внутри таймера, так что он действительно прямолинейный. Всякий раз, когда текстовый файл достигает 350 000 КБ, он бросает мне эту ошибку.
Пожалуйста, поделитесь своим фрагментом кода, в котором вы пишете эту строку ввода в файл –
Не используйте RC4 для производственного кода, он не был безопасным методом шифрования в течение нескольких десятилетий. Используйте AES (Advanced Encryption Standard). – zaph