- •Лабораторная работа № 1. Симметричное шифрование данных.
- •Лабораторная работа № 2. Дополнительные возможности симметричного шифрование данных.
- •InitializeComponent();
- •Лабораторная работа № 3. Асимметричное шифрование данных.
- •Создать в блокноте файл с некоторым текстом и сохранить его на диске в кодировке Юникод.
- •InitializeComponent();
- •Лабораторная работа № 4. Цифровая подпись.
- •Создать в блокноте файл с некоторым текстом и сохранить его на диске в кодировке Юникод.
- •InitializeComponent();
- •Лабораторная работа № 5. Шифрование в sql Server.
- •Лабораторная работа № 6. Работа с зашифрованными базами в Visual Studio.
- •InitializeComponent();
- •Лабораторная работа № 7. Реализация различных алгоритмов симметричного шифрования данных.
- •InitializeComponent();
- •InitializeComponent();
- •InitializeComponent();
- •InitializeComponent();
- •InitializeComponent();
- •Лабораторная работа № 8. Реализация различных алгоритмов симметричного шифрования данных в комбинации с асимметричным шифрованием.
- •InitializeComponent();
- •Лабораторная работа № 9. Реализация различных алгоритмов хеширования.
- •InitializeComponent();
InitializeComponent();
}
private void создатьКлючToolStripMenuItem_Click(object sender, EventArgs e)
{
зашифроватьИнформациюToolStripMenuItem.Visible = true;
расшифроватьФайлToolStripMenuItem.Visible = true;
label2.Visible = true;
label3.Visible = true;
comboBox1.Visible = true;
comboBox2.Visible = true;
SaveFileDialog save = new SaveFileDialog();
save.Filter = "Бинарные файлы|*.bin|Все файлы|*.*";
if (save.ShowDialog() == DialogResult.OK)
{
FileStream writer = new FileStream(save.FileName, FileMode.OpenOrCreate);
writer.Write(Rj.Key, 0, Rj.Key.Length);
writer.Close();
label1.Text = "Ключ успешно создан";
}
}
private void зашифроватьИнформациюToolStripMenuItem_Click(object sender, EventArgs e)
{
OpenFileDialog open = new OpenFileDialog();
open.Filter = "Текстовый документ (*.txt)|*.txt|Все файлы (*.*)|*.*";
if (open.ShowDialog() == DialogResult.OK)
{
label1.Text = "";
ICryptoTransform cyber = Rj.CreateEncryptor();
FileStream opener = new FileStream(open.FileName, FileMode.OpenOrCreate);
StreamReader read = new StreamReader(opener);
text = read.ReadToEnd();
read.Close();
opener.Close();
SaveFileDialog save = new SaveFileDialog();
save.Filter = "Бинарные файлы|*.bin|Все файлы|*.*";
if (save.ShowDialog() == DialogResult.OK)
{
FileStream creator = new FileStream(save.FileName, FileMode.OpenOrCreate);
creator.Write(Rj.IV, 0, Rj.IV.Length);
CryptoStream crypto = new CryptoStream(creator, cyber, CryptoStreamMode.Write);
StreamWriter write = new StreamWriter(crypto);
write.Write(text);
write.Flush();
crypto.FlushFinalBlock();
write.Close();
creator.Close();
label1.Text = "Файл успешно зашифрован";
}
}
}
private void отобразитьЗашифрованнуюИнформациюToolStripMenuItem_Click(object sender, EventArgs e)
{
richTextBox1.Clear();
label1.Text = "";
OpenFileDialog open = new OpenFileDialog();
open.Filter = "Бинарные файлы|*.bin|Все файлы|*.*";
if (open.ShowDialog() == DialogResult.OK)
{
FileStream opener = new FileStream(open.FileName, FileMode.Open);
opener.Seek(Rj.IV.Length, SeekOrigin.Begin);
StreamReader read = new StreamReader(opener);
richTextBox1.Visible = true;
richTextBox1.Text = read.ReadToEnd();
opener.Close();
read.Close();
}
}
private void проестьИнформациюОКлючеToolStripMenuItem_Click(object sender, EventArgs e)
{
зашифроватьИнформациюToolStripMenuItem.Visible = true;
расшифроватьФайлToolStripMenuItem.Visible = true;
label2.Visible = true;
label3.Visible = true;
comboBox1.Visible = true;
comboBox2.Visible = true;
OpenFileDialog open = new OpenFileDialog();
open.Filter = "Бинарные файлы|*.bin|Все файлы|*.*";
if (open.ShowDialog() == DialogResult.OK)
{
FileStream opener = new FileStream(open.FileName, FileMode.Open);
byte[] key = new byte[Rj.Key.Length];
opener.Read(key, 0, key.Length);
Rj.Key = key;
opener.Close();
label1.Text = "Ключ успешно прочитан";
}
}
private void расшифроватьФайлToolStripMenuItem_Click(object sender, EventArgs e)
{
richTextBox2.Clear();
label1.Text = "";
OpenFileDialog open = new OpenFileDialog();
open.Filter = "Бинарные файлы|*.bin|Все файлы|*.*";
if (open.ShowDialog() == DialogResult.OK)
{
FileStream opener = new FileStream(open.FileName, FileMode.Open);
byte[] key = new byte[Rj.IV.Length];
opener.Read(key, 0, key.Length);
Rj.IV = key;
ICryptoTransform cyber = Rj.CreateDecryptor();
CryptoStream crypto = new CryptoStream(opener, cyber, CryptoStreamMode.Read);
StreamReader read = new StreamReader(crypto);
richTextBox2.Visible = true;
richTextBox2.Text = read.ReadToEnd();
read.Close();
}
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
switch (comboBox1.SelectedIndex)
{
case 0:
{
Rj.Mode = CipherMode.ECB;
break;
}
case 1:
{
Rj.Mode = CipherMode.CBC;
break;
}
case 2:
{
Rj.Mode = CipherMode.CFB;
break;
}
case 3:
{
Rj.Mode = CipherMode.OFB;
break;
}
}
}
private void comboBox2_SelectedIndexChanged(object sender, EventArgs e)
{
switch (comboBox2.SelectedIndex)
{
case 0:
{
Rj.Padding = PaddingMode.Zeros;
break;
}
case 1:
{
Rj.Padding = PaddingMode.ANSIX923;
break;
}
case 2:
{
Rj.Padding = PaddingMode.ISO10126;
break;
}
case 3:
{
Rj.Padding = PaddingMode.PKCS7;
break;
}
}
}
}
}
Контрольный пример:
Образец главной формы проекта:
Результат работы пункта меню «Создать ключ»:
Результат работы пункта меню «Зашифровать информацию»:
Результат работы пункта меню «Отобразить шифрованную информацию»:
Результат работы пункта меню «Расшифровать файл»:
Результат работы пункта меню «Прочесть информацию о ключе»: