Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Отчёт по лабораторным.docx
Скачиваний:
12
Добавлен:
18.11.2022
Размер:
494.32 Кб
Скачать

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(TDES.Key, 0, TDES.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 = TDES.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(TDES.IV, 0, TDES.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(TDES.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[TDES.Key.Length];

opener.Read(key, 0, key.Length);

TDES.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[TDES.IV.Length];

opener.Read(key, 0, key.Length);

TDES.IV = key;

ICryptoTransform cyber = TDES.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:

{

TDES.Mode = CipherMode.ECB;

break;

}

case 1:

{

TDES.Mode = CipherMode.CBC;

break;

}

case 2:

{

TDES.Mode = CipherMode.CFB;

break;

}

case 3:

{

TDES.Mode = CipherMode.OFB;

break;

}

}

}

private void comboBox2_SelectedIndexChanged(object sender, EventArgs e)

{

switch (comboBox2.SelectedIndex)

{

case 0:

{

TDES.Padding = PaddingMode.Zeros;

break;

}

case 1:

{

TDES.Padding = PaddingMode.ANSIX923;

break;

}

case 2:

{

TDES.Padding = PaddingMode.ISO10126;

break;

}

case 3:

{

TDES.Padding = PaddingMode.PKCS7;

break;

}

}

}

}

}

Форма RC2:

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

using System.IO;

using System.Security.Cryptography;

namespace Информационная_безопасность__7

{

public partial class Form4 : Form

{

RC2CryptoServiceProvider RC2 = new RC2CryptoServiceProvider();

string text;

public Form4()

{