Исключение System.ArgumentNullException в Convert.ToBase64String - C#
Формулировка задачи:
Всем привет, делаю программу для шифрования/дешифрования текста
Когда тестировал, пробовал меленький текст в пару строк и оно работало как надо, но потом же попробовал объемный текст и после нажатия на кнопку шифрования выкидывает ошибку "Crypto error" (которая собственно и обрабатывается в коде через catch ) и необработанное исключение
При этом подсвечивает строку в коде:
Вот выкладываю полный код моей кнопки Шифрования
Сразу скажу что, не все я писал с нуля поэтому видимо и возникают подводные камни, но просто хочу заставить работать
Вот нарыл, собственно вопрос, как это реализовать?
Тогда п
ArgumentNullException
ArgumentNullException не обработано
Необработанное исключение типа "System.ArgumentNullException" в mscorlib.dll Дополнительные сведения: Значение не может быть неопределенным.
Листинг программы
- textBox2.Text = Convert.ToBase64String(EncryptedData);
Листинг программы
- private void button4_Click(object sender, EventArgs e)
- {
- byte[] data = new byte[1024];
- RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
- try
- {
- if (publickey.Length == 0)
- {
- _ispub_xml = false;
- MessageBox.Show("Неверный открытый ключ");
- return;
- }
- else
- {
- rsa.FromXmlString(publickey);
- }
- }
- catch (Exception ex)
- {
- MessageBox.Show("Проблема с RSA \n" + ex.Message.ToString());
- }
- try
- {
- data = Encoding.UTF8.GetBytes(textBox1.Text);
- }
- catch (Exception ss)
- {
- MessageBox.Show(ss.ToString());
- return;
- }
- try
- {
- EncryptedData = rsa.Encrypt(data, false);
- }
- catch (CryptographicException ex)
- {
- MessageBox.Show("Crypto error... \n" + ex.Message.ToString());
- }
- textBox2.Text = Convert.ToBase64String(EncryptedData);
- for (int i = 0; i < data.Length - 1; i++)
- {
- data.SetValue((byte)0, i);
- }
- for (int i = 0; i < EncryptedData.Length - 1; i++)
- {
- EncryptedData.SetValue((byte)0, i);
- }
- }
Допер почему ошибка выбивает
Алгоритмы шифрования с открытым ключом используют буфер фиксированного размера
Стоит заметить, что длина текстового сообщения не может превышать длину ключа, поэтому в данном проекте была реализована разбивка текста на блоки, каждый из которых шифруется, а затем они, обратно склеиваются, что позволяет набирать текст неограниченного размера.
Решение задачи: «Исключение System.ArgumentNullException в Convert.ToBase64String»
textual
Листинг программы
- .toString()
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д