Прочитать текст из файла, зашифровать по алгоритму RSA и вывести результат в RichTextBox - C#
Формулировка задачи:
Здравствуйте
программирую на шарпе сравнительно не долго - столкнулся с проблемой
есть код который выводит в richTextBox1 текст открываемого файла - необходимо чтобы перед открытием этот файл был декриптован по алгоритму RSA
код открытия
понимаю что это надо делать где-то в steamreader
перерыл уже кучу примеров использования rsa но так и не смог сообразить
ключ примерно так будет
вообщем подскажите кодом как можно при открытии файла производить одновременно его декрипт по RSA
Заранее благодарю
private void открытьToolStripMenuItem_Click(object sender, EventArgs e) { Stream myStream = null; OpenFileDialog openFileDialog1 = new OpenFileDialog(); openFileDialog1.InitialDirectory = "c:\\"; openFileDialog1.Filter = "txt files (*.txt)|*.txt"; openFileDialog1.FilterIndex = 2; openFileDialog1.RestoreDirectory = true; if (openFileDialog1.ShowDialog() == DialogResult.OK) { try { if ((myStream = openFileDialog1.OpenFile()) != null) { using (myStream) { System.IO.StreamReader streamReader; streamReader = new System.IO.StreamReader(openFileDialog1.FileName, System.Text.Encoding.GetEncoding("Utf-8")); richTextBox1.Text = streamReader.ReadToEnd(); streamReader.Close(); } } } catch (Exception ex) { MessageBox.Show("Error: Could not read file from disk. Original error: " + ex.Message); } } }
RSACryptoServiceProvider publicKey = new RSACryptoServiceProvider(); publicKey.FromXmlString("<RSAKeyValue><Modulus>ключ</Modulus><Exponent>AQAB</Exponent></RSAKeyValue>");
Решение задачи: «Прочитать текст из файла, зашифровать по алгоритму RSA и вывести результат в RichTextBox»
textual
Листинг программы
private void открытьToolStripMenuItem_Click(object sender, EventArgs e) { OpenFileDialog dialog = new OpenFileDialog(); dialog.Filter = "Текстовые файлы |*.*"; if (dialog.ShowDialog() == System.Windows.Forms.DialogResult.OK) { RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(); rsa.FromXmlString("<RSAKeyValue><Modulus>0jhwehyiuhiewhvge5vRJzWjN11JrjF/Lb77yKCGMoqpnAg7KPDXltIARWgEPsmURQdoOFRvmTI9u4ieaPvFIB4rk+sdEl4gRUt6gY7h0KvYD4riIBbq2m4zrctcZDYBeKEvlgnn5D1mBgj/nSOAVc1L+ybdgchopnghd=</Modulus><Exponent>AQAB</Exponent></RSAKeyValue>"); UnicodeEncoding unicode = new UnicodeEncoding(); byte[] toDecrypt = File.ReadAllBytes(dialog.FileName); byte[] decrypted = rsa.Decrypt(toDecrypt, false);// тут пишет что Размер данных для дешифрования превышает максимум для этого модуля, 128 байт. richTextBox1.Text = unicode.GetString(decrypted); rsa.Dispose(); // тут пишет что недоступен из за уровня защиты } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д