Вы находитесь на странице: 1из 11

МІНІСТРЕСТВО ОСВІТИ І НАУКИ УКРАЇНИ

ОДЕСЬКИЙ НАЦІОНАЛЬНИЙ ПОЛІТЕХНІЧНИЙ УНІВЕРСИТЕТ

ІНСТИТУТ КОМП’ЮТЕРНИХ СИСТЕМ

КАФЕДРА СИСТЕМНОГО ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ

Лабораторна робота №1

з дисципліни:

«Безпека програм та даних»

Виконав:

студент групи АС-182

Одеса 2021
Вариант 3

 Простая перестановка

Запускаем программу, в строке ввода уже указана строка для шифрования,


нажимаем на кнопку «Шифровать», в textBox2 выводится результат.

Для дешифровки строки вводим строку в textBox1, после на кнопку


«Дешифратор», в textBox2 выводится вывод.
 Одиночная перестановка по ключу

Запускаем программу, выбираем в меню «1_2», появляется textBox3 для


ввода ключа. Строка для шифрования указана, вводим ключь, нажимаем на
кнопку шифровать. Вывод результатов в textBox2.

Копируем шифрованную строку, вводим, нажимаем на кнопку


«Дешифратор». Вывод выводится в textBox2.
 Двойная перестановка по ключу

Запускаем программу , выбираем в меню 1_3. Строка для шифрования уже


казана , вводим ключи , нажимаем кнопку «Шифровать». Выводиться вывод .

Копируем шифрованную строку , вводим , нажимаем на кнопку


«Дешифровать». Выводиться вывод.
using System;
using System.Windows.Forms;

namespace Shifr_1_1
{
public partial class Form1 : Form
{
int n = 0;
string[,] m = new string[8, 6];
string[,] m1 = new string[8, 6];
//------------------------------------------------------------------------------------------------
----------------------------------------------
public void oneSH(TextBox tx1, TextBox tx2, string s)
{
textBox2.Text += "Строка: " + textBox1.Text + Environment.NewLine;
textBox2.Text += "Шифрование строки: " + Environment.NewLine;
int num = 0;
for(int j = 0; j<6; j++)
for(int i = 0; i<8; i++)
{
try
{
m[i,j] = Convert.ToString(tx1.Text[num]);
}
catch { }
num++;
}

for (int i = 0; i < 8; i++)


for (int j = 0; j < 6; j++)
{
if (j == 0)
{
tx2.Text += Environment.NewLine;
}
tx2.Text += m[i, j] + " ";
s += m[i, j];
}
tx2.Text += Environment.NewLine + Environment.NewLine;
tx2.Text += "Зашифрованная строка: " + s+ Environment.NewLine;
tx2.Text += Environment.NewLine;
}

//------------------------------------------------------------------------------------------------
----------------------------------------------

public void oneD(TextBox tx1, TextBox tx2)


{
textBox2.Text += "Строка: " + textBox1.Text + Environment.NewLine;
textBox2.Text += "Дешифрование строки: " + Environment.NewLine;
int num = 0;

for (int i = 0; i < 8; i++)


for (int j = 0; j < 6; j++)
{
try
{
if (j == 0)
{
tx2.Text += Environment.NewLine;
}
m1[i, j] = Convert.ToString(tx1.Text[num]);
tx2.Text += m1[i, j]+" ";
}
catch { }
num++;
}
tx2.Text += Environment.NewLine+ "Дешифрованная строка: ";
for (int j = 0; j < 6; j++)
for (int i = 0; i < 8; i++)
{
tx2.Text += m1[i, j];
}
tx2.Text += Environment.NewLine;
}

//------------------------------------------------------------------------------------------------
----------------------------------------------

public void oneSH1(TextBox tx1, TextBox tx2, TextBox tx3, string s)


{
tx2.Clear();
int number;
int b = 0;
string[,] massiv = new string[8, 6];
string[,] massiv1 = new string[8, 6];
string[] c = new string[6];
for (int j = 0; j < 6; j++)
for (int i = 0; i < 8; i++)
{
try
{
massiv[i, j] = Convert.ToString(tx1.Text[b]);
}
catch { }
b++;
}
tx2.Text += "Строка для шифрования: " + Environment.NewLine;
tx2.Text += "Шифрование: " + Environment.NewLine;

for (int i = 0; i < 8; i++)


for (int j = 0; j < 6; j++)
{
if (j == 0)
{
tx2.Text += Environment.NewLine;
}
tx2.Text += massiv[i, j]+ " " ;
}

tx2.Text += Environment.NewLine;
tx2.Text += "Ключь: "+tx3.Text;
for (int i = 0; i < 6; i++)
{
c[i] = Convert.ToString(tx3.Text[i]);
}

for (int j = 0; j < 6; j++)


{
try
{
number =Convert.ToInt32( c[j]);
for (int i = 0; i < 8; i++)
{
massiv1[i, number - 1] = massiv[i, j];
}
}
catch { }
}

tx2.Text += Environment.NewLine;
for (int i = 0; i < 8; i++)
for (int j = 0; j < 6; j++)
{
if (j == 0)
{
tx2.Text += Environment.NewLine;
}
tx2.Text += massiv1[i, j]+" ";
s += massiv1[i, j];
}
tx2.Text += Environment.NewLine;
tx2.Text +="Получаемая строка: |"+ s + Environment.NewLine+"|";
}
//------------------------------------------------------------------------------------------------
----------------------------------------------

public void oneD1(TextBox tx1, TextBox tx2, TextBox tx3, string s)


{
tx2.Clear();
int number;
int b = 0;
string[,] massiv = new string[8, 6];
string[,] massiv1 = new string[8, 6];
string[] c = new string[6];

tx2.Text += "Строка для дишифрования: " + Environment.NewLine;


tx2.Text += "Дишифрование: " + Environment.NewLine;
for (int i = 0; i < 8; i++)
for (int j = 0; j < 6; j++)
{
try
{
massiv[i, j] = Convert.ToString(tx1.Text[b]);
if (j == 0)
{
tx2.Text += Environment.NewLine;
}
tx2.Text += massiv[i, j] + " ";
}
catch { }
b++;
}

tx2.Text += Environment.NewLine;
tx2.Text += "Ключь: " + tx3.Text;
for (int i = 0; i < 6; i++)
{
c[i] = Convert.ToString(tx3.Text[i]);
}

for (int j = 0; j < 6; j++)


{
try
{
number = Convert.ToInt32(c[j]);
for (int i = 0; i < 8; i++)
{
massiv1[i, number - 1] = massiv[i, j];
}
}
catch { }
}

tx2.Text += Environment.NewLine;
for (int j = 0; j < 6; j++)
for (int i = 0; i < 8; i++)
{
s += massiv1[i, j];
}
tx2.Text += Environment.NewLine;
tx2.Text += "Получаемая строка: " + s + Environment.NewLine;
}

//------------------------------------------------------------------------------------------------
----------------------------------------------

public void oneSH2(TextBox tx1, TextBox tx2, TextBox tx3, TextBox tx4, string s)
{
tx2.Clear();
int number;
int b = 0;
string[,] massiv = new string[8, 6];
string[,] massiv1 = new string[8, 6];
string[] c = new string[6];
string[] v = new string[8];
for (int j = 0; j < 6; j++)
for (int i = 0; i < 8; i++)
{
try
{
massiv[i, j] = Convert.ToString(tx1.Text[b]);
}
catch { }
b++;
}
tx2.Text += "Строка для шифрования: " + Environment.NewLine;
tx2.Text += "Шифрование: " + Environment.NewLine;

for (int i = 0; i < 8; i++)


for (int j = 0; j < 6; j++)
{
if (j == 0)
{
tx2.Text += Environment.NewLine;
}
tx2.Text += massiv[i, j] + " ";
}

tx2.Text += Environment.NewLine;
tx2.Text += "Ключь: " +tx4.Text+"/"+ tx3.Text;
for (int i = 0; i < 6; i++)
{
c[i] = Convert.ToString(tx3.Text[i]);
}
for (int i = 0; i < 8; i++)
{
v[i] = Convert.ToString(tx4.Text[i]);
}

for (int j = 0; j < 6; j++)


{
try
{
number = Convert.ToInt32(c[j]);
for (int i = 0; i < 8; i++)
{
massiv1[i, number - 1] = massiv[i, j];
}
}
catch { }
}

for (int j = 0; j < 8; j++)


{
try
{
number = Convert.ToInt32(v[j]);
for (int i = 0; i < 6; i++)
{
massiv1[number - 1, i] = massiv[j,i];
}
}
catch { }
}

tx2.Text += Environment.NewLine;
for (int i = 0; i < 8; i++)
for (int j = 0; j < 6; j++)
{
if (j == 0)
{
tx2.Text += Environment.NewLine;
}
tx2.Text += massiv1[i, j] + " ";
s += massiv1[i, j];
}
tx2.Text += Environment.NewLine;
tx2.Text += "Получаемая строка: |" + s + "|"+ Environment.NewLine;
}

//------------------------------------------------------------------------------------------------
----------------------------------------------

public void oneD2(TextBox tx1, TextBox tx2, TextBox tx3, TextBox tx4, string s)
{
tx2.Clear();
int number;
int b = 0;
string[,] massiv = new string[8, 6];
string[,] massiv1 = new string[8, 6];
string[] c = new string[6];
string[] v = new string[8];

tx2.Text += "Строка для дишифрования: " + Environment.NewLine;


tx2.Text += "Дишифрование: " + Environment.NewLine;
for (int i = 0; i < 8; i++)
for (int j = 0; j < 6; j++)
{
try
{
massiv[i, j] = Convert.ToString(tx1.Text[b]);
if (j == 0)
{
tx2.Text += Environment.NewLine;
}
tx2.Text += massiv[i, j] + " ";
}
catch { }
b++;
}

tx2.Text += Environment.NewLine;
tx2.Text += "Ключь: " + tx4.Text + "/" + tx3.Text;
for (int i = 0; i < 6; i++)
{
c[i] = Convert.ToString(tx3.Text[i]);
}
for (int i = 0; i < 8; i++)
{
v[i] = Convert.ToString(tx4.Text[i]);
}

for (int j = 0; j < 8; j++)


{
try
{
number = Convert.ToInt32(v[j]);
for (int i = 0; i < 6; i++)
{
massiv1[number - 1, i] = massiv[j, i];
}
}
catch { }
}

for (int j = 0; j < 6; j++)


{
try
{
number = Convert.ToInt32(c[j]);
for (int i = 0; i < 8; i++)
{
massiv1[i, number - 1] = massiv[i, j];
}
}
catch { }
}
tx2.Text += Environment.NewLine;
for (int j = 0; j < 6; j++)
for (int i = 0; i < 8; i++)
{
s += massiv1[i, j];
}
tx2.Text += Environment.NewLine;
tx2.Text += "Получаемая строка: " + s + Environment.NewLine;
}

public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)


{
string s="";
if (n==0)
{
this.oneSH(textBox1, textBox2, textBox2.Text);
}

if(n==1)
{
this.oneSH1(textBox1, textBox2,textBox3,s);
}
if (n == 2)
{
this.oneD2(textBox1, textBox2, textBox3, textBox4, s);
}
}

private void toolStripMenuItem1_Click(object sender, EventArgs e)


{
n = 0;
textBox1.Text = "Привет, это сообщение состоит из 48 символов!!!!";
label2.Visible = false;
textBox3.Visible = false;
textBox4.Visible = false;
}

private void Form1_Load(object sender, EventArgs e)


{
textBox1.Text = "Привет, это сообщение состоит из 48 символов!!!!";
label2.Visible = false;
textBox3.Visible = false;
textBox4.Visible = false;
}

private void button2_Click(object sender, EventArgs e)


{
string s="";
if (n == 0)
{
this.oneD(textBox1, textBox2);
}
if (n == 1)
{
this.oneD1(textBox1, textBox2, textBox3, s);
}
if (n == 2)
{
this.oneD2(textBox1, textBox2, textBox3, textBox4, s);
}
}
private void toolStripMenuItem2_Click(object sender, EventArgs e)
{
textBox1.Text = "Привет, это сообщение состоит из 48 символов!!!!";
n = 1;
label2.Visible = true;
textBox3.Visible = true;
textBox4.Visible = false;
}

private void label2_Click(object sender, EventArgs e)


{

private void toolStripMenuItem3_Click(object sender, EventArgs e)


{
n = 2;
textBox1.Text = "Привет, это сообщение состоит из 48 символов!!!!";
label2.Visible = true;
textBox3.Visible = true;
textBox4.Visible = true;
}
}
}