Шифр Цезаря. Исходный код C++


Юлий Цезарь и Его шифр

Юлий Цезарь и Его шифр


В то время, как только развивались алгоритмы шифрования. Шифр Цезаря был один из первых алгоритмов, на данный момент этот алгоритм не популярен, так как очень легок в расшифрованние. Но все-таки, нам студентам, ученикам дают задание реализовать данный алгоритм на языках программирования, чтобы ознакомить с методами реализации работы Цезаря. Итак, данный алгоритм использовался для передачи сообщений военным, дипломатам. В азбуке буквы переносились на несколько символов вперед или назад. Например перенести буквы на 3 позиции вперед ( А=Д, В=Е и так дальше). Данную программу я реализовал, на языке C++ в качестве азбуки я использовал, таблицу символов ASCII, так как каждый символ привязан к своему номеру.

Таблица ASCII

Таблица ASCII

 

 

 

 

 

 

 

 

 

 

 

Использовал три библиотеки:

  1. iostream – стандартная библиотека ввода-вывода.
  2. string – стандартная библиотека для работы с символьными типами.
  3. Fstream – для работы с файлами

Использовал две функции Cezar и UnCezar.

Код программы:

#include <iostream>
#include <fstream>
#include <string>
#define k 3 // На сколько символов будем передвигать по таблице ASCII
using namespace std;
string Cezar(string a){ // Функция шифрования
string TC;
for(int i = 0; i<(a.length()); i++) {
TC = TC + (char)((a[i] + k));
}
return TC;
}
string UnCezar(string TC){ // Функция расшифрования
string UnTC;
for(int i = 0; i<(TC.length()); i++) {
UnTC = UnTC + (char)((TC[i] – k));
}
return UnTC;
}
int main() // Главная Функция программы
{
char s[20];
cout << “File name? “;
cin >> s;
ifstream in(s, ios::in);
if ( ! in ) {
cerr << “Error.\n”;
system(“pause”);
}
else {
char a[100]={0};
in>>a;
string TC = Cezar(a);
cout<<“Original: \n”<<a<<“\n”;
string UnTC = UnCezar(TC);
cout<<“Original (Cezar): \n”<<TC<<“\n”;
cout<<“UnCezar: \n”<<UnTC<<“\n”;
ofstream out(s, ios::app);
if ( ! out ) {
cerr << “Error\n”;

}
out << “\nCrypt:\n” <<TC;
out << “\nDecrypt:\n” << UnTC;
}
system(“pause”);
return 0;
}

Результат программы

Результат программы

comments powered by HyperComments

Вы можете оставить комментарий, или ссылку на Ваш сайт.

Thanks: