Рейтинг:
0
OriginalGriff
Я думаю, что это работает, когда вы ничего не удаляете, скорее всего, это побочный эффект, и изменение вашего кода на удаление ничего не будет иметь желаемого эффекта в долгосрочной перспективе. Если вы не знаете, почему? что-то исправляет проблему, она, вероятно, вообще не исправлена и вернется, чтобы укусить вас позже.
Поэтому вместо этого начните искать ошибку нулевой ссылки и выясните, что ее вызывает и почему.
Проблемы с нулевыми ссылками-одна из самых распространенных проблем, о которых нас спрашивают, и это также та, на которую мы меньше всего готовы ответить, но вы лучше всего готовы ответить сами.
Позвольте мне просто объяснить, что означает ошибка: вы пытались использовать переменную, свойство или возвращаемое значение метода, но оно содержит null - что означает, что в переменной нет экземпляра класса.
Это немного похоже на карман: у вас есть карман в рубашке, в котором вы держите ручку. Если вы сунете руку в карман и обнаружите, что там нет ручки, вы не сможете подписать свое имя на листе бумаги - и вы получите очень забавный вид, если попытаетесь! Пустой карман дает вам нулевое значение (здесь нет ручки!), поэтому вы не можете сделать ничего такого, что обычно делали бы, когда извлекли свою ручку. Почему он пуст? Вот в чем вопрос - может быть, вы забыли взять ручку, когда уходили из дома сегодня утром, или, возможно, вы оставили ручку в кармане вчерашней рубашки, когда снимали ее вчера вечером.
Мы не можем сказать, потому что нас там не было, и, что еще важнее, мы даже не можем видеть вашу рубашку, не говоря уже о том, что находится в кармане!
Вернемся к компьютерам, и вы каким - то образом сделали то же самое-и мы не можем увидеть ваш код, а тем более запустить его и узнать, что содержит null, когда это не должно быть.
Но вы можете - и Visual Studio поможет вам здесь. Запустите свою программу в отладчике, и когда она выйдет из строя, VS покажет вам строку, на которой она обнаружила проблему. Затем вы можете начать просматривать различные его части, чтобы увидеть, какое значение равно null, и начать просматривать свой код, чтобы выяснить, почему. Поэтому поставьте точку останова в начале метода, содержащего строку ошибки, и снова запустите программу с самого начала. На этот раз VS остановится перед ошибкой и позволит вам изучить, что происходит, пройдя через код, глядя на ваши значения.
Но мы не можем этого сделать - у нас нет вашего кода, мы не знаем, как его использовать, если бы он у нас был, у нас нет ваших данных. Так что попробуйте - и посмотрите, сколько информации вы сможете узнать!
OriginalGriff
Я думал, RealIdiot работает в VB, а не в C#? Я подозреваю, что точки с запятой сбивают его с толку ...
Прости, Прости-моя вина. "Работал" - это немного чересчур для этого идиота.
OriginalGriff
Ребенок-сценарист, который пытался заставить нас написать для него приложение для выкупа, так как ему не хватало ума, чтобы заставить работать свои собственные шнурки, а тем более приложение "hello world". Ему показали дверь несколько дней назад.
Ричард подозревает, что ты вернулся за чем-то еще, но я не уверена.
KajLao
О, я использую шифрование Rjindael для обеспечения безопасности моих личных данных на моем компьютере...
OriginalGriff
Молодец!
Есть еще успехи с отладчиком?
KajLao
Меня сейчас нет дома, но я обязательно попробую ваш совет и дам вам знать!
Kaj Lao
Эй, парень, у меня все еще есть проблемы, и я уже давно пытаюсь.. Что-то не так с моим кодом, который дает мне сообщение о том, что значение текстового поля равно null, когда ключ дешифрования копируется в текстовое поле при Form_Load. Пожалуйста, помоги мне, парень.
Вот сообщение об ошибке, которое я получаю: смотрите конец этого сообщения для получения подробной информации о вызове
отладка just-in-time (JIT) вместо этого диалогового окна.
************** Текст Исключения **************
Система.ArgumentNullException: значение не может быть null.
Имя параметра: inputBuffer
в системе.Безопасность.Криптография.RijndaelManagedTransform.TransformFinalBlock(Byte[] inputBuffer, Int32 inputOffset, Int32 inputCount)
в системе.Безопасность.Криптография.Поток cryptostream.FlushFinalBlock()
в системе.Безопасность.Криптография.Поток cryptostream.Dispose (Boolean disposing)
в системе.ИО.Трансляция.Закрывать()
в системе.ИО.Трансляция.Располагать()
в hidden_tear_decrypter.Form1.AES_Decrypt(Byte[] bytesToBeDecrypted, Byte[] passwordBytes)
в hidden_tear_decrypter.Форма 1.DecryptFile (строковый файл, строковый пароль)
в hidden_tear_decrypter.Форма 1.DecryptDirectory(расположение строки)
в hidden_tear_decrypter.Форма form1.обработчика button1_click(объект отправителя, EventArgs в электронной)
в системе.Окна.Формы.Контроль.OnClick(EventArgs e)
в системе.Окна.Формы.Кнопка.OnClick(EventArgs e)
в системе.Окна.Формы.Кнопка.OnMouseUp(MouseEventArgs mevent)
в системе.Окна.Формы.Контроль.WmMouseUp(Message& m, кнопка MouseButtons, Int32 клика)
в системе.Окна.Формы.Контроль.WndProc (Message& m)
в системе.Окна.Формы.ButtonBase.WndProc (Message& m)
в системе.Окна.Формы.Кнопка.WndProc (Message& m)
в системе.Окна.Формы.Контроль.ControlNativeWindow.OnMessage (Message& m)
в системе.Окна.Формы.Контроль.ControlNativeWindow.WndProc (Message& m)
в системе.Окна.Формы.Родное окно.Обратного вызова(hwnd элемента указателя IntPtr, int32 и глутамат натрия, указателя IntPtr параметр wparam, указателя IntPtr lparam должен)
************** Загруженные Сборки **************
mscorlib
Версия Сборки: 4.0.0.0
Версия Win32: 4.0.30319.17929 построен: FX45RTMREL
Кодовая база: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll
----------------------------------------
скрытая слеза-дешифратор
Версия Сборки: 1.0.0.0
Версия Win32: 1.0.0.0
Кодовая база: file:///C:/Users/Dushal%20Anand/Desktop/test/hidden-tear-decrypter.exe
----------------------------------------
Система.Окна.Формы
Версия Сборки: 4.0.0.0
Версия Win32: 4.0.30319.17929 построен: FX45RTMREL
Код: файл:///с:/Windows и Microsoft.Чистая/сборка/GAC_MSIL/системы.Окна.Формы/v4.0_4.0.0.0__b77a5c561934e089 / система.Окна.Forms.dll
----------------------------------------
Система.Рисование
Версия Сборки: 4.0.0.0
Версия Win32: 4.0.30319.17929 построен: FX45RTMREL
Код: файл:///с:/Windows и Microsoft.Чистая/сборка/GAC_MSIL/системы.Чертеж/v4.0_4.0.0.0__b03f5f7f11d50a3a / система.Drawing.dll
----------------------------------------
Система
Версия Сборки: 4.0.0.0
Версия Win32: 4.0.30319.17929 построен: FX45RTMREL
Кодовая база: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Xml
Версия Сборки: 4.0.0.0
Версия Win32: 4.0.30319.17929 построен: FX45RTMREL
Кодовая база: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
Система.Конфигурация
Версия Сборки: 4.0.0.0
Версия Win32: 4.0.30319.17929 построен: FX45RTMREL
Код: файл:///с:/Windows и Microsoft.Чистая/сборка/GAC_MSIL/системы.Конфигурация/v4.0_4.0.0.0__b03f5f7f11d50a3a / система.Configuration.dll
----------------------------------------
************** Отладка JIT **************
Для включения "точно в срок" (JIT) отладки, на .конфигурационный файл для этой
приложение или компьютер (machine.config) должны иметь
значение jitDebugging, установленных в системе.выиграть
Kaj Lao
раздел windows.forms.
Приложение также должно быть скомпилировано с отладкой
включен.
Например:
& lt;конфигурация>
&ЛТ;система.окна.формы jitDebugging="истинной" /&ГТ;
Когда включена отладка JIT, любое необработанное исключение
будет отправлен JIT-отладчик, зарегистрированный на компьютере
вместо того, чтобы быть обработанным этим диалоговым окном.
Вот ОПИК этого сообщения: https://gyazo.com/274dd86ab05671e362239a11493d6e78
А вот и мой код, что с ним не так?: using System;
использование системы.Коллекции.Общий;
использование системы.ComponentModel;
используя системы.Сведения;
использование системы.Рисование;
использование System. Linq;
используя системы.Текст;
использование системы.Нарезание резьбы.Задачи;
использование системы.Окна.Формы;
использование системы.Безопасность;
использование системы.Безопасность.Криптография;
использование системы.ИО;
использование System.Net;
использование Microsoft. Win32;
используя системы.Во время выполнения.InteropServices;
используя системы.Текст.RegularExpressions;
пространство имен hidden_tear_decrypter
{
общественности частичного класс form1 : форма
{
строка userName = Environment.имя пользователя;
строку каталог пользователя - = "C:\\Users\\";
открытый form1()
{
метод InitializeComponent();
}
public byte[] AES_Decrypt(byte[] bytesToBeDecrypted, byte[] passwordBytes)
{
byte[] decryptedBytes = null;
// Установите свою соль здесь, измените ее в соответствии с вашим вкусом:
// Байты соли должны быть не менее 8 байт.
byte[] saltBytes = новый байт[] { 1, 2, 3, 4, 5, 6, 7, 8 };
использование (MemoryStream ms = новый MemoryStream())
{
использование (RijndaelManaged AES = new RijndaelManaged())
{
АЭС.Размер ключа = 256;
АЭС.Размер блока = 128;
var key = new Rfc2898DeriveBytes(passwordBytes, saltBytes, 1000);
АЭС.Ключ = ключ.GetBytes(AES. KeySize / 8);
АЭС.IV = ключ.GetBytes(AES. BlockSize / 8);
АЭС.Mode = CipherMode.CBC;
using (var cs = new CryptoStream (ms, AES.CreateDecryptor (), CryptoStreamMode.Писать))
{
cs. Write(bytesToBeDecrypted, 0, bytesToBeDecrypted.Длина);
КС.Рядом();
}
decryptedBytes = ms.Метод toArray();
}
}
вернуться decryptedBytes;
}
общественного недействительными DecryptFile(строке файл,строку пароль)
{
byte[] bytesToBeDecrypted = файл.ReadAllBytes(файл);
байт[] passwordBytes = кодировка.Кодировке utf8.GetBytes (пароль);
passwordBytes = SHA256.Творить().Метода computehash(passwordBytes);
byte[] bytesDecrypted = AES_Decrypt(bytesToBeDecrypted, passwordBytes);
Файл.WriteAllBytes(файл, bytesDecrypted);
система строкой расширение =.ИО.Путь.GetExtension(файл);
результат строки = файл.Подстрока(0, файл.Длина-удлинение.Длина);
Системы.ИО.Файл.Переместить (файл, результат);
}
public void DecryptDirectory(string location)
{
строковый пароль = textBox1. Text;
string[] files = каталог.GetFiles (местоположение);
string[] childDirectories = каталог.GetDirectories(location);
for (int i = 0; i < files.Длина; i++)
{
string extension = Path. GetExtension(files[i]);
if (extension ==". protected")
{
DecryptFile(files[i], password);
}
}
for (int i = 0; i & lt; childDirectories.Длина; i++)
{
DecryptDirectory(childDirectories[i]);
}
}
частный недействительными обработчика button1_click(объект отправителя, EventArgs в электронной)
{
string path = " \ \ Desktop\ \ important fi
Kaj Lao
les";
строки полный путь = каталог пользователя + имя + путь;
DecryptDirectory(полный путь);
{
}
}
частный недействительными методе form1_load(объект отправителя, EventArgs в электронной)
{
строковый адрес = "https://e3fs55arlxt22043mf6j4q17k5ehzhfvozov9vypm0jda.000webhostapp.com/%E2%99%9B%E5%85%AB%D7%9E%E2%99%8B%D7%AA%D7%90%20%D6%B7 % D7% 9E% E5% 86% 92% E5% 8F% AF% D6% B8% 20% D7% A7% E2% 99% 8B% E7% AB% A0% D7% 94% E9% 9B% 8E% D7 % 9A% EF% B7% BA% E2% 99% 8B% E7% BE% A8% D7% 81% E8% AE% 9A.% E5% 90% 89% E9% 85% 8D% E2% 99% 8B% 20% E8% AA% 8D% D7% 91% E6% B7% AB% E4% BE% 86% E2% 98% BA% E7% AC% AC% E0% A5% B5% E2% 99% 8B% D7% 9E% E5% 8E% BB% D6% BC% E4% BA% 94% E2% 99% 8B% E9% A1% 8C% D7% 9D% D7% 90% E2% 99% 8B% DB% 8D% E0% A4% 88% 20% E2% 9D% 97% E5% 8D% 81% E7% AB% A0% E2% 99% 8B% D7% 94% E8% 80% B3% E2% 9E% B2% E2% 99% 8B% E6% 9B% B0% E4% BA% 8C% E2% 99% 8B% D7% 9D% E2% 99% 8B% D7% A7% D7% A3% D6% BC% D7% A4% E9% A1% 8C% E5% 8D% 81% E2% 99% 8B% D7% A1% E4% B8% 89% D7% A4.% D7% AA% E2% 99% 8B% D7% 94% E2% 99% 8B% E6 % 84% 8F% E2% 99% 8B% D7% A0% D7% AA% E4% B9% 9D% D6% B7% E2% 99% 8B% E8% AA% A8% D6% B4.% E2% 99% 8B% E8% 80% B3% D7% 9C% E9% 97% 9C% E2% 99% 8B% 20% D6% B5% D6% B8% D7% A3% E7% AC% AC% E4% BA% 8C% E2% 99% 8B% E8% AE% 90% E7% 88% BE /% 23% E0% A5% AF% DB% A4% DA% 82X% E0% A5% 88% E0% A4% BC% EF% BB % AB% E0% A4% B2% E0% A4% B0kw% E0% A5% A3% D9% 82% D9% 91f% E5% 93% 81% E0% A4% 944% EF% BA% A0% E0% A4 % BC% E0% A5% B2% D9% A5% E0% A5% A6% E0% A5% 87% EF% BA% AE% E0% A5% 81% DA% AC% DB% 94% DB% 98% EF% B7% BA% E0% A4% A5% EF% BB% A5U% E0% A4% 88% EF% BB% 84% E0% A5% 93% E7% 9A% 84% DB% 84% E0% A4% 89% EF% BB% A6% DB% BE% D9% B6% E0% A4% 96% DB% B7% D9% B5% DB% 9C% DB% B1% DB% A5% E0% A5% BB% DB% 97% EF% BB% A3D% E5% AD% 97% EF% BA% B7% EF% BA% A2% EF% BB% 88% E0% A5% A4l% E5% AD% 97% DA% 9B% E0% A4% 81% EF% BB% AF% DA% AC% E0% A5% 89% DB% 9E% E0% A5% A2% E0% A4% 83% D9% 8E% D1% A24% E8% AD% AF% EF% BA% BA% E2% 80% 8D2% DA% BD% E0% A5% B1L% E0% A5% B5% DA% 90% D9% AE% E0% A5% 85% D9% 8Ea% EF% B9% B9% E0% A5% 84% E0% A4% BB% E0% A4% AB% EF% BA% A2% E0% A4% 83% DB% 8D% E0% A4% 88% E7% BF% BB7% DB% 9E% DA% AC% EF% BA% BC% E0% A5% B0% D9% 86% DB% 84% EF% BA% 98% DA% B6% DA% 9E% 25% D0% B6.txt ";
WebClient client = новый WebClient();
StreamReader reader = новый StreamReader (клиент.OpenRead(адрес));
поле textbox2.Текст = читатель.ReadToEnd();
текстовое поле textbox1.Текст = Среда.MachineName + " - " + Environment.имя пользователя;
текстовое поле textbox1.Текст = элемент textbox1.Текст.Заменить(" ", "");
строку STR = textbox1 элемент.Текст.Заменить(" ", "");
строка[] сплит = поле textbox2.Текст.Подстрока(поле textbox2.Текст.Ул. метод indexOf(стр) + (.Длина + 1)).Сплит(' ');
textBox1. Text = split[0];
}
}
}
KajLao
Надеюсь, вы сможете помочь (: