Исключение 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()
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д