Прочитать текст из файла, зашифровать по алгоритму 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(); // тут пишет что недоступен из за уровня защиты
}
}