Открыть Электронные книги
Категории
Открыть Аудиокниги
Категории
Открыть Журналы
Категории
Открыть Документы
Категории
Отчет
Лабораторная работа №2
Дисциплина: Защита информации
Бишкек 2021
Лабораторная работа №2
Шифр Вижинера
#include <iostream>
#include <ctime>
#include <string>
using namespace std;
int main()
{
setlocale(LC_ALL, "ru");
string A = { "absdefghijklmnopqrstuvwxyz" };
string B, C, D = "", ST;
//int n;
//int w;
cout << "The alphabet: " << A << endl;
cout << "Enter the word: ";
cin >> B;
cout << "Enter the key: ";
cin >> C;
int a, b, c;
a = A.length();
b = B.length();
c = C.length();
if (b >= c)
{
for (int i = 0; i < (b / c); i++)
{
D = D + C;
}
for (int j = 0; j < (b % c); j++)
{
D = D + C[j];
}
}
else
{
for (int k = 0; k < b; k++)
{
D = D + C[k];
}
}
cout << "D: " << D << endl;
int X[10];
int Y[10];
int R[10];
for (int m = 0; m < b; m++)
{
for (int n = 0; n < a; n++)
{
if (B[m] == A[n])
{
X[m] = n;
}
}
cout << X[m] << " ";
}
cout << endl;
for (int m = 0; m < b; m++)
{
for (int n = 0; n < a; n++)
{
if (D[m] == A[n])
{
Y[m] = n;
}
}
cout << Y[m] << " ";
}
cout << endl;
int w=0;
for (int t = 0; t < b; t++)
{
for (int s = 0; s < b; s++)
{
R[s] = ((X[t] + Y[t]) % 26);
}
cout << R[t] << " ";
ST[t] = ST[t] + A[R[t]];
}
cout << endl;
cout << "New word: ";
for (int t = 0; t < b; t++)
cout << ST[t] << "";
return 0;
//system("pause");
}