Szyfrowanie tekstu

Szyfrowanie tekstu

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++

Galeria:

Program w akcji.

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.