close

Вход

Забыли?

вход по аккаунту

?

лаба 2 (4)

код для вставкиСкачать
Министерство образования Республики Беларусь
УО "Барановичский государственный университет"
Кафедра экономики и организации производства
Инженерный факультет
Методы защиты компьютерной информации
Лабораторная работа №2
"Шифры замены"
Выполнил:
студент 4 курса Группы ИСТ-41
Мешков А. В.
Проверил: Казак Ю. И.
Барановичи 2013
Цель: Научиться разрабатывать алгоритмы шифрования заменой, приобрести навыки разработки программ, использующих шифрование простой заменой.
Задание
1. Разработать программу для шифрования произвольного текстового файла шифром одноалфавитной замены. Содержимое исходного текстового файла и зашифрованного текстового файла должно отображаться на экране. Хранение шифра должно осуществляться в файле. Программа должна позволять осуществлять дешифрацию зашифрованного файла на основе файла с шифром. Содержимое зашифрованного и дешифрованного файлов должно отображаться на экране.
2. Изменить программу, разработанную в задании 1, так, чтобы шифрование-дешифрование осуществлялось методом многоалфавитной замены с использованием не менее 5 алфавитов. Код программы:
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;
namespace Шифры_замены
{ public partial class Form1 : Form
{
string[] text = new string[1000];
string[] enc = new string[1000];
string[,] enc1 = new string[1000, 6];
public Form1()
{ InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
openFileDialog1.Filter = "txt files (*.txt)|*.txt|enc files (*.enc)|*.enc|All files (*.*)|*.*";
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
Stream mystream = File.Open(openFileDialog1.FileName, FileMode.Open, FileAccess.Read);
StreamReader reader = new StreamReader(mystream, Encoding.GetEncoding(1251));
textBox1.Text = reader.ReadLine();
reader.Close();
mystream.Close();
}
}
private void button5_Click(object sender, EventArgs e)
{
saveFileDialog1.Filter = "txt files (*.txt)|*.txt|enc files (*.enc)|*.enc|All files (*.*)|(*.*)";
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
Stream mystream = File.Open(saveFileDialog1.FileName, FileMode.Create, FileAccess.Write);
StreamWriter writer = new StreamWriter(mystream, Encoding.GetEncoding(1251));
writer.WriteLine(textBox2.Text);
writer.Close();
mystream.Close();
}
}
private void button4_Click(object sender, EventArgs e)
{
openFileDialog1.Filter = "key files (*.key)|*.key|All files (*.*)|*.*";
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
Stream mystream = File.Open(openFileDialog1.FileName, FileMode.Open, FileAccess.Read);
StreamReader reader = new StreamReader(mystream, Encoding.GetEncoding(1251));
if (radioButton1.Checked == true)
{
string s = reader.ReadLine();
string[] s1 = s.Split(' ');
string en = reader.ReadLine();
string[] en1 = en.Split(' ');
for (int i = 0; i < 35; i++)
{
enc[i] = en1[i];
text[i] = s1[i];
}
}
else
{
string s = reader.ReadLine();
string[] s1 = s.Split(' ');
for (int i = 0; i < 35; i++)
{
text[i] = s1[i];
}
for (int j = 0; j < 5; j++)
{
string en = reader.ReadLine();
string[] en1 = en.Split(' ');
for (int i = 0; i < 35; i++)
{
enc1[i, j] = en1[i];
}
}
}
reader.Close();
mystream.Close();
}
}
private void button2_Click(object sender, EventArgs e)
{
textBox2.Clear();
string txt = textBox1.Text, text11 = textBox1.Text.ToLower();
string text1 = text11.Replace(" ", "");
string text2 = null;
int i = 0, dlina = text1.Length, g = 0;
if (radioButton1.Checked == true)
{
while (i < text1.Length)
{
for (int j = 0; j < txt.Length; j++)
{
if (text1.Substring(i, 1) == text[j])
{
text2 += enc[j];
}
}
i++;
}
textBox2.Text = text2;
}
else
{
int i1 = 0;
while (i < text1.Length)
{
if (i1 == 5) i1 = 0;
for (int j = 0; j < txt.Length; j++)
{
if (text1.Substring(i, 1) == text[j])
{
text2 += enc1[j, i1];
}
}
i++;
i1++;
}
textBox2.Text = text2;
}
}
private void button3_Click(object sender, EventArgs e)
{
string text1 = textBox1.Text, text2 = null; ;
int i = 0, dlina = text1.Length, g = 0;
if (radioButton1.Checked == true)
{
while (i < text1.Length)
{
for (int j = 0; j < 35; j++)
{
if (text1.Substring(i, 1) == enc[j])
{
text2 += text[j];
}
}
i++;
}
textBox2.Text = text2;
}
else
{
string x;
int i1 = 0;
while (i < text1.Length)
{
if (i1 == 5) i1 = 0;
if (i1 > 2) { x = text1.Substring(i, 2); } else { x = text1.Substring(i, 1); }
for (int j = 0; j < 35; j++)
{
if (x == enc1[j, i1])
{
text2 += text[j];
}
}
if (i1 > 2) { i += 2; } else { i++; }
i1++;
}
textBox2.Text = text2;
}
}
}
}
Результат работы программы:
Вывод: Научился разрабатывать алгоритмы шифрования заменой, приобрел навыки разработки программ, использующих шифрование простой заменой.
2
Документ
Категория
Рефераты
Просмотров
70
Размер файла
151 Кб
Теги
лаба
1/--страниц
Пожаловаться на содержимое документа