Program: narzucający Szyfr Cezara na podany tekst.
Szyfr polega na przesunięciu wszystkich liter w alfabecie ASCII o podaną wartość.
Wykorzystane dane wejściowe (plik o nazwie “oryginal.txt”):
asdf
Dane wyjściowe (“szyfr.txt”):
kcnp
Kompilator: Dev C++
Kod programu:
//Szyfrowanie tekstu
#include <iostream>
#include <fstream>
using namespace std;
char szyfrowanie(char Kod,int nr);
int main () {
int length;
char * buffer;
ifstream f;
f.open ("oryginal.txt", ios::binary );
if (!(f.good())){
cout<<"Critical Failure!\n";
system("PAUSE");
return EXIT_SUCCESS;
};
f.seekg (0, ios::end);
length = f.tellg();
f.seekg (0, ios::beg);
buffer = new char [length];
f.read (buffer,length);
f.close();
cout.write (buffer,length);
cout<<"\nO ile chcesz to zaszyfrowac: ";
int nr;
cin>>nr;
while(nr>26) nr-=26;
for(int i=0;i<length;i++) buffer[i]=szyfrowanie(buffer[i],nr);
ofstream p;
p.open("szyfr.txt");
p.write(buffer,length);
p.close();
system("PAUSE");
return EXIT_SUCCESS;
}
char szyfrowanie(char Kod,int nr){
int iKod=int(Kod);
char wynik;
if ((iKod>=65)&&(iKod<=90)){
if (((iKod+nr)>=65)&&((iKod+nr)<=90)) wynik=iKod+nr;
else {
iKod-=26;
wynik=iKod+nr;
};
} else if ((iKod>=97)&&(iKod<=122)){
if (((iKod+nr)>=97)&&((iKod+nr)<=122)) wynik=iKod+nr;
else {
iKod-=26;
wynik=iKod+nr;
};
} else wynik=iKod;
return wynik;
}; Słowniczek pojęć:
W kryptografii jedna z najprostszych technik szyfrowania. Jest to rodzaj szyfru podstawieniowego, w którym każda litera tekstu jawnego (niezaszyfrowanego) zastępowana jest oddaloną od niej o stałą liczbę pozycji w alfabecie inną literą (szyfr monoalfabetyczny), przy czym kierunek zamiany musi być zachowany.