Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // main.................................................................................
- #include <iostream>
- #include <time.h>
- #include <cstdlib>
- #include <conio.h>
- #include "szyfrownica.h"
- using namespace std;
- int main()
- {
- char opcja;
- Szyfrownica s1;
- while(true)
- {
- cout<<endl;
- cout<<"OCTIGMA 3.0"<<endl;
- cout<<"-------------------"<<endl;
- cout<<"[1] Szyfruj"<<endl;
- cout<<endl;
- cout<<"[3] Deszyfruj"<<endl;
- cout<<endl;
- cout<<"[5] Wyjscie"<<endl;
- opcja=getch();
- switch(opcja)
- {
- case '1': s1.szyfruj(); cout<<"\a";break;
- case '3': s1.deszyfruj(); cout<<"\a"; break;
- case '5':cout<<"\a" ;exit(0); break;
- default: {cout<<endl; cout<<"zly znak!"<<endl; cout<<endl; system("pause");}
- }
- system("cls");
- }
- return 0;
- }
- // heady ..............................................................
- #include <iostream>
- #include<cstdlib>
- using namespace std;
- class Szyfrownica
- {
- public:
- int klucz1[38];
- int klucz2[35];
- int klucz3[35];
- string zdanie;
- void generuj_klucz();
- void sprawdz_klucz();
- void szyfruj();
- void deszyfruj();
- };
- // body.........................................................................................................
- #include <iostream>
- #include <time.h>
- #include <fstream>
- #include <cstdlib>
- #include <string>
- #include <algorithm>
- #include "szyfrownica.h"
- using namespace std;
- void Szyfrownica::generuj_klucz()
- {
- int losowa, wylosowano=0;
- srand(time(NULL));
- // losowanie klucza 1....
- while(wylosowano<35)
- {
- losowa = rand()%900+100;
- if ((losowa != klucz1[0])&&(losowa != klucz1[1])&&(losowa != klucz1[2])&&(losowa != klucz1[3])&&(losowa != klucz1[4])&&
- (losowa != klucz1[5])&&(losowa != klucz1[6])&&(losowa != klucz1[7])&&(losowa != klucz1[8])&&(losowa != klucz1[9])&&
- (losowa != klucz1[10])&&(losowa != klucz1[11])&&(losowa != klucz1[12])&&(losowa != klucz1[13])&&(losowa != klucz1[14])&&
- (losowa != klucz1[15])&&(losowa != klucz1[16])&&(losowa != klucz1[17])&&(losowa != klucz1[18])&&(losowa != klucz1[19])&&
- (losowa != klucz1[20])&&(losowa != klucz1[21])&&(losowa != klucz1[22])&&(losowa != klucz1[23])&&(losowa != klucz1[24])&&
- (losowa != klucz1[25])&&(losowa != klucz1[26])&&(losowa != klucz1[27])&&(losowa != klucz1[28])&&(losowa != klucz1[29])&&
- (losowa != klucz1[30])&&(losowa != klucz1[31])&&(losowa != klucz1[32])&&(losowa != klucz1[33])&&(losowa != klucz1[34]))
- {
- klucz1[wylosowano] = losowa;
- wylosowano++;
- }
- }
- // losowanie klucza 2....
- wylosowano=0;
- while(wylosowano<35)
- {
- losowa = rand()%900+100;
- if ((losowa != klucz2[0])&&(losowa != klucz2[1])&&(losowa != klucz2[2])&&(losowa != klucz2[3])&&(losowa != klucz2[4])&&
- (losowa != klucz2[5])&&(losowa != klucz2[6])&&(losowa != klucz2[7])&&(losowa != klucz2[8])&&(losowa != klucz2[9])&&
- (losowa != klucz2[10])&&(losowa != klucz2[11])&&(losowa != klucz2[12])&&(losowa != klucz2[13])&&(losowa != klucz2[14])&&
- (losowa != klucz2[15])&&(losowa != klucz2[16])&&(losowa != klucz2[17])&&(losowa != klucz2[18])&&(losowa != klucz2[19])&&
- (losowa != klucz2[20])&&(losowa != klucz2[21])&&(losowa != klucz2[22])&&(losowa != klucz2[23])&&(losowa != klucz2[24])&&
- (losowa != klucz2[25])&&(losowa != klucz2[26])&&(losowa != klucz2[27])&&(losowa != klucz2[28])&&(losowa != klucz2[29])&&
- (losowa != klucz2[30])&&(losowa != klucz2[31])&&(losowa != klucz2[32])&&(losowa != klucz2[33])&&(losowa != klucz2[34]))
- {
- klucz2[wylosowano] = losowa;
- wylosowano++;
- }
- }
- // losowanie klucza 3....
- wylosowano=0;
- while(wylosowano<35)
- {
- losowa = rand()%900+100;
- if ((losowa != klucz3[0])&&(losowa != klucz3[1])&&(losowa != klucz3[2])&&(losowa != klucz3[3])&&(losowa != klucz3[4])&&
- (losowa != klucz3[5])&&(losowa != klucz3[6])&&(losowa != klucz3[7])&&(losowa != klucz3[8])&&(losowa != klucz3[9])&&
- (losowa != klucz3[10])&&(losowa != klucz3[11])&&(losowa != klucz3[12])&&(losowa != klucz3[13])&&(losowa != klucz3[14])&&
- (losowa != klucz3[15])&&(losowa != klucz3[16])&&(losowa != klucz3[17])&&(losowa != klucz3[18])&&(losowa != klucz3[19])&&
- (losowa != klucz3[20])&&(losowa != klucz3[21])&&(losowa != klucz3[22])&&(losowa != klucz3[23])&&(losowa != klucz3[24])&&
- (losowa != klucz3[25])&&(losowa != klucz3[26])&&(losowa != klucz3[27])&&(losowa != klucz3[28])&&(losowa != klucz3[29])&&
- (losowa != klucz3[30])&&(losowa != klucz3[31])&&(losowa != klucz3[32])&&(losowa != klucz3[33])&&(losowa != klucz3[34]))
- {
- klucz3[wylosowano] = losowa;
- wylosowano++;
- }
- }
- // losowanie klucza kluczy...
- wylosowano=35;
- int wylosowano2 = 0;
- while(wylosowano2<3)
- {
- losowa = rand()%900+100;
- if ((losowa != klucz1[0])&&(losowa != klucz1[1])&&(losowa != klucz1[2])&&(losowa != klucz1[3])&&(losowa != klucz1[4])&&
- (losowa != klucz1[5])&&(losowa != klucz1[6])&&(losowa != klucz1[7])&&(losowa != klucz1[8])&&(losowa != klucz1[9])&&
- (losowa != klucz1[10])&&(losowa != klucz1[11])&&(losowa != klucz1[12])&&(losowa != klucz1[13])&&(losowa != klucz1[14])&&
- (losowa != klucz1[15])&&(losowa != klucz1[16])&&(losowa != klucz1[17])&&(losowa != klucz1[18])&&(losowa != klucz1[19])&&
- (losowa != klucz1[20])&&(losowa != klucz1[21])&&(losowa != klucz1[22])&&(losowa != klucz1[23])&&(losowa != klucz1[24])&&
- (losowa != klucz1[25])&&(losowa != klucz1[26])&&(losowa != klucz1[27])&&(losowa != klucz1[28])&&(losowa != klucz1[29])&&
- (losowa != klucz1[30])&&(losowa != klucz1[31])&&(losowa != klucz1[32])&&(losowa != klucz1[33])&&(losowa != klucz1[34])&&
- (losowa != klucz2[0])&&(losowa != klucz2[1])&&(losowa != klucz2[2])&&(losowa != klucz2[3])&&(losowa != klucz2[4])&&
- (losowa != klucz2[5])&&(losowa != klucz2[6])&&(losowa != klucz2[7])&&(losowa != klucz2[8])&&(losowa != klucz2[9])&&
- (losowa != klucz2[10])&&(losowa != klucz2[11])&&(losowa != klucz2[12])&&(losowa != klucz2[13])&&(losowa != klucz2[14])&&
- (losowa != klucz2[15])&&(losowa != klucz2[16])&&(losowa != klucz2[17])&&(losowa != klucz2[18])&&(losowa != klucz2[19])&&
- (losowa != klucz2[20])&&(losowa != klucz2[21])&&(losowa != klucz2[22])&&(losowa != klucz2[23])&&(losowa != klucz2[24])&&
- (losowa != klucz2[25])&&(losowa != klucz2[26])&&(losowa != klucz2[27])&&(losowa != klucz2[28])&&(losowa != klucz2[29])&&
- (losowa != klucz2[30])&&(losowa != klucz2[31])&&(losowa != klucz2[32])&&(losowa != klucz2[33])&&(losowa != klucz2[34])&&
- (losowa != klucz3[0])&&(losowa != klucz3[1])&&(losowa != klucz3[2])&&(losowa != klucz3[3])&&(losowa != klucz3[4])&&
- (losowa != klucz3[5])&&(losowa != klucz3[6])&&(losowa != klucz3[7])&&(losowa != klucz3[8])&&(losowa != klucz3[9])&&
- (losowa != klucz3[10])&&(losowa != klucz3[11])&&(losowa != klucz3[12])&&(losowa != klucz3[13])&&(losowa != klucz3[14])&&
- (losowa != klucz3[15])&&(losowa != klucz3[16])&&(losowa != klucz3[17])&&(losowa != klucz3[18])&&(losowa != klucz3[19])&&
- (losowa != klucz3[20])&&(losowa != klucz3[21])&&(losowa != klucz3[22])&&(losowa != klucz3[23])&&(losowa != klucz3[24])&&
- (losowa != klucz3[25])&&(losowa != klucz3[26])&&(losowa != klucz3[27])&&(losowa != klucz3[28])&&(losowa != klucz3[29])&&
- (losowa != klucz3[30])&&(losowa != klucz3[31])&&(losowa != klucz3[32])&&(losowa != klucz3[33])&&(losowa != klucz3[34])&&
- (losowa !=klucz1[35])&&(losowa != klucz1[36])&&(losowa != klucz1[37]))
- {
- klucz1[wylosowano] = losowa;
- wylosowano++;
- wylosowano2++;
- }
- }
- }
- void Szyfrownica::sprawdz_klucz()
- {
- int eror=0, eror2=0;
- //ladowanie klucza.
- // sprawdzanie klucza 1 ......
- cout<<endl;
- cout<<"\a wczytano klucz, sprawdz..."<<endl; cout<<endl;
- system("pause");
- fstream strim1;
- strim1.open("test.txt", ios::out);
- for(int i=0; i<35; i++)
- {
- for(int g=0; g<35; g++)
- {
- if(klucz1[i]!=klucz1[g])
- {
- strim1<<"Klucz1["<<i<<"] wzgl Klucz1["<<g<<"] OK"<<endl;
- }
- else if(i==g)
- {
- strim1<< "Klucz1["<<i<<"] wzgl Klucz1["<<g<<"] EQ"<<endl;
- }
- else if(klucz1[i]==klucz1[g])
- {
- eror++;
- strim1<<"Klucz1["<<i<<"] wzgl Klucz1["<<g<<"] !!! BAD !!!!!!!!!!!!!!"<<endl;
- }
- else strim1<<"kiii_chuuuj?"<<endl;
- }
- }
- // sprawdzenie klucza 2....
- for(int i=0; i<35; i++)
- {
- for(int g=0; g<35; g++)
- {
- if(klucz2[i]!=klucz2[g])
- {
- strim1<<"Klucz2["<<i<<"] wzgl Klucz2["<<g<<"] OK"<<endl;
- }
- else if(i==g)
- {
- strim1<< "Klucz2["<<i<<"] wzgl Klucz2["<<g<<"] EQ"<<endl;
- }
- else if(klucz2[i]==klucz2[g])
- {
- eror++;
- strim1<<"Klucz2["<<i<<"] wzgl Klucz2["<<g<<"] !!! BAD !!!!!!!!!!!!!"<<endl;
- }
- else strim1<<"JAKIS DZIWNY ERROR"<<endl;
- }
- }
- // sprawdzenie klucza 3...
- for(int i=0; i<35; i++)
- {
- for(int g=0; g<35; g++)
- {
- if(klucz3[i]!=klucz3[g])
- {
- strim1<<"Klucz3["<<i<<"] wzgl Klucz3["<<g<<"] OK"<<endl;
- }
- else if(i==g)
- {
- strim1<< "Klucz3["<<i<<"] wzgl Klucz3["<<g<<"] EQ"<<endl;
- }
- else if(klucz3[i]==klucz3[g])
- {
- eror++;
- strim1<<"Klucz3["<<i<<"] wzgl Klucz3["<<g<<"] !!! BAD !!!!!!!!!!!!!!"<<endl;
- }
- else strim1<<"JAKIS DZIWNY ERROR"<<endl;
- }
- }
- // sprawdzenie klucza kluczy wzgl klucz1[]
- for(int i=35; i<38; i++)
- {
- for(int g=0; g<35; g++)
- {
- if(klucz1[i]!=klucz1[g])
- {
- strim1<<"[spec] Klucz1["<<i<<"] wzgl Klucz1["<<g<<"] OK"<<endl;
- }
- else if(klucz1[i]==klucz1[g])
- {
- eror2++;
- strim1<<"[spec] Klucz1["<<i<<"] wzgl Klucz1["<<g<<"] !!! BAD !!!!!!!!!!!!!!"<<endl;
- }
- else strim1<<"JAKIS DZIWNY ERROR"<<endl;
- }
- }
- // sprawdzenie klucza kluczy wzgl klucz2[]
- for(int i=35; i<38; i++)
- {
- for(int g=0; g<35; g++)
- {
- if(klucz1[i]!=klucz2[g])
- {
- strim1<<"[spec] Klucz1["<<i<<"] wzgl Klucz2["<<g<<"] OK"<<endl;
- }
- else if(klucz1[i]==klucz2[g])
- {
- eror2++;
- strim1<<"[spec] Klucz1["<<i<<"] wzgl Klucz2["<<g<<"] !!! BAD !!!!!!!!!!!!!!"<<endl;
- }
- else strim1<<"JAKIS DZIWNY ERROR"<<endl;
- }
- }
- // sprawdzenie klucza kluczy wzgl klucz3[]
- for(int i=35; i<38; i++)
- {
- for(int g=0; g<35; g++)
- {
- if(klucz1[i]!=klucz3[g])
- {
- strim1<<"[spec] Klucz1["<<i<<"] wzgl Klucz3["<<g<<"] OK"<<endl;
- }
- else if(klucz1[i]==klucz3[g])
- {
- eror2++;
- strim1<<"[spec] Klucz1["<<i<<"] wzgl Klucz3["<<g<<"] !!! BAD !!!!!!!!!!!!!!"<<endl;
- }
- else strim1<<"[SPEC] JAKIS DZIWNY ERROR"<<endl;
- }
- }
- // koniec
- eror = eror/2;
- cout<<endl;
- cout<<"\a";
- if((eror<1)&&(eror2<1)) {cout<<endl<<"Klucz poprawny!"<<endl;cout<<endl; }
- else
- {
- cout<<"\a Zly klucz!"<<endl;
- cout<<"liczba bledow klucza: "<<eror<<"."<<endl;
- cout<<"liczba bledow [spec]: "<<eror2<<"."<<endl;
- cout<<"Raport w pliku test.txt"<<endl;
- cout<<endl;
- }
- strim1.close();
- system("pause");
- }
- void Szyfrownica::szyfruj()
- {
- int k=0;
- int ile, nile, losowa;
- int licznik1=0, licznik2=0;
- generuj_klucz();
- //Wczytuje zdanie z pliku txt do string 'zdanie'.
- fstream strim3;
- strim3.open("plik.txt", ios::in);
- if(strim3.good()==false)
- {
- cout <<"\a \a brak pliku!"<<endl;
- system("pause");
- exit(0);
- }
- if(!(getline(strim3,zdanie)))
- {
- cout<<"\a \a"<<endl;
- cout<<"Brak zdania w pliku"<<endl; cout<<endl;
- system("pause");
- exit(0);
- }
- strim3.close();
- transform(zdanie.begin(), zdanie.end(), zdanie.begin(), ::toupper);
- //czyscimy plik.txt
- strim3.open("plik.txt", ios::out);
- strim3.close();
- ile = zdanie.length();
- while (ile%3!=0)
- {
- zdanie.insert (ile, "x");
- ile = zdanie.length();
- }
- ile = zdanie.length();
- //tutaj w zaleznosci od chara w stringu 'zdanie' wpisujemy do nowej dynamicznej tablicy odpowiednie wartosci z tablicy klucz []
- nile = (ile + (ile/3));
- int *zdanie_SZ;
- zdanie_SZ = new int [nile];
- srand(time(NULL));
- for(int k=0; k<(ile/3); k++)
- {
- losowa = rand()%3+1;
- switch(losowa)
- {
- // szyfrowanie 3 wg klucza 1.
- case 1:
- zdanie_SZ[licznik1] = klucz1[35];
- licznik1++;
- for(int i=0; i<3; i++)
- {
- switch(zdanie[licznik2])
- {
- case 'A': zdanie_SZ[licznik1] = klucz1[0]; break;
- case 'B': zdanie_SZ[licznik1] = klucz1[1]; break;
- case 'C': zdanie_SZ[licznik1] = klucz1[2]; break;
- case 'D': zdanie_SZ[licznik1] = klucz1[3]; break;
- case 'E': zdanie_SZ[licznik1] = klucz1[4]; break;
- case 'F': zdanie_SZ[licznik1] = klucz1[5]; break;
- case 'G': zdanie_SZ[licznik1] = klucz1[6]; break;
- case 'H': zdanie_SZ[licznik1] = klucz1[7]; break;
- case 'I': zdanie_SZ[licznik1] = klucz1[8]; break;
- case 'J': zdanie_SZ[licznik1] = klucz1[9]; break;
- case 'K': zdanie_SZ[licznik1] = klucz1[10]; break;
- case 'L': zdanie_SZ[licznik1] = klucz1[11]; break;
- case 'M': zdanie_SZ[licznik1] = klucz1[12]; break;
- case 'N': zdanie_SZ[licznik1] = klucz1[13]; break;
- case 'O': zdanie_SZ[licznik1] = klucz1[14]; break;
- case 'P': zdanie_SZ[licznik1] = klucz1[15]; break;
- case 'R': zdanie_SZ[licznik1] = klucz1[16]; break;
- case 'S': zdanie_SZ[licznik1] = klucz1[17]; break;
- case 'T': zdanie_SZ[licznik1] = klucz1[18]; break;
- case 'U': zdanie_SZ[licznik1] = klucz1[19]; break;
- case 'W': zdanie_SZ[licznik1] = klucz1[20]; break;
- case 'Y': zdanie_SZ[licznik1] = klucz1[21]; break;
- case 'Z': zdanie_SZ[licznik1] = klucz1[22]; break;
- case ' ': zdanie_SZ[licznik1] = klucz1[23]; break;
- case 'x': zdanie_SZ[licznik1] = klucz1[24]; break;
- case '?': zdanie_SZ[licznik1] = klucz1[25]; break;
- case '!': zdanie_SZ[licznik1] = klucz1[26]; break;
- case '.': zdanie_SZ[licznik1] = klucz1[27]; break;
- case ',': zdanie_SZ[licznik1] = klucz1[28]; break;
- case ':': zdanie_SZ[licznik1] = klucz1[29]; break;
- case '(': zdanie_SZ[licznik1] = klucz1[30]; break;
- case ')': zdanie_SZ[licznik1] = klucz1[31]; break;
- case '>': zdanie_SZ[licznik1] = klucz1[32]; break;
- case '<': zdanie_SZ[licznik1] = klucz1[33]; break;
- case '/': zdanie_SZ[licznik1] = klucz1[34]; break;
- default:
- {
- system("cls");
- cout<<endl;
- cout<<"\a \a nieprawidlowy znak w zdaniu!"<<endl;
- cout<<endl;
- delete [] zdanie_SZ;
- system("pause");
- exit(0);
- }
- }
- licznik1++;
- licznik2++;
- }
- break;
- // szyfrowanie 3 wg klucza 2.
- case 2:
- zdanie_SZ[licznik1] = klucz1[36];
- licznik1++;
- for(int i=0; i<3; i++)
- {
- switch(zdanie[licznik2])
- {
- case 'A': zdanie_SZ[licznik1] = klucz2[0]; break;
- case 'B': zdanie_SZ[licznik1] = klucz2[1]; break;
- case 'C': zdanie_SZ[licznik1] = klucz2[2]; break;
- case 'D': zdanie_SZ[licznik1] = klucz2[3]; break;
- case 'E': zdanie_SZ[licznik1] = klucz2[4]; break;
- case 'F': zdanie_SZ[licznik1] = klucz2[5]; break;
- case 'G': zdanie_SZ[licznik1] = klucz2[6]; break;
- case 'H': zdanie_SZ[licznik1] = klucz2[7]; break;
- case 'I': zdanie_SZ[licznik1] = klucz2[8]; break;
- case 'J': zdanie_SZ[licznik1] = klucz2[9]; break;
- case 'K': zdanie_SZ[licznik1] = klucz2[10]; break;
- case 'L': zdanie_SZ[licznik1] = klucz2[11]; break;
- case 'M': zdanie_SZ[licznik1] = klucz2[12]; break;
- case 'N': zdanie_SZ[licznik1] = klucz2[13]; break;
- case 'O': zdanie_SZ[licznik1] = klucz2[14]; break;
- case 'P': zdanie_SZ[licznik1] = klucz2[15]; break;
- case 'R': zdanie_SZ[licznik1] = klucz2[16]; break;
- case 'S': zdanie_SZ[licznik1] = klucz2[17]; break;
- case 'T': zdanie_SZ[licznik1] = klucz2[18]; break;
- case 'U': zdanie_SZ[licznik1] = klucz2[19]; break;
- case 'W': zdanie_SZ[licznik1] = klucz2[20]; break;
- case 'Y': zdanie_SZ[licznik1] = klucz2[21]; break;
- case 'Z': zdanie_SZ[licznik1] = klucz2[22]; break;
- case ' ': zdanie_SZ[licznik1] = klucz2[23]; break;
- case 'x': zdanie_SZ[licznik1] = klucz2[24]; break;
- case '?': zdanie_SZ[licznik1] = klucz2[25]; break;
- case '!': zdanie_SZ[licznik1] = klucz2[26]; break;
- case '.': zdanie_SZ[licznik1] = klucz2[27]; break;
- case ',': zdanie_SZ[licznik1] = klucz2[28]; break;
- case ':': zdanie_SZ[licznik1] = klucz2[29]; break;
- case '(': zdanie_SZ[licznik1] = klucz2[30]; break;
- case ')': zdanie_SZ[licznik1] = klucz2[31]; break;
- case '>': zdanie_SZ[licznik1] = klucz2[32]; break;
- case '<': zdanie_SZ[licznik1] = klucz2[33]; break;
- case '/': zdanie_SZ[licznik1] = klucz2[34]; break;
- default:
- {
- system("cls");
- cout<<endl;
- cout<<"\a \a nieprawidlowy znak w zdaniu!"<<endl;
- cout<<endl;
- delete [] zdanie_SZ;
- system("pause");
- exit(0);
- }
- }
- licznik1++;
- licznik2++;
- }
- break;
- // szyfrowanie 3 wg klucza 3.
- case 3:
- zdanie_SZ[licznik1] = klucz1[37];
- licznik1++;
- for(int i=0; i<3; i++)
- {
- switch(zdanie[licznik2])
- {
- case 'A': zdanie_SZ[licznik1] = klucz3[0]; break;
- case 'B': zdanie_SZ[licznik1] = klucz3[1]; break;
- case 'C': zdanie_SZ[licznik1] = klucz3[2]; break;
- case 'D': zdanie_SZ[licznik1] = klucz3[3]; break;
- case 'E': zdanie_SZ[licznik1] = klucz3[4]; break;
- case 'F': zdanie_SZ[licznik1] = klucz3[5]; break;
- case 'G': zdanie_SZ[licznik1] = klucz3[6]; break;
- case 'H': zdanie_SZ[licznik1] = klucz3[7]; break;
- case 'I': zdanie_SZ[licznik1] = klucz3[8]; break;
- case 'J': zdanie_SZ[licznik1] = klucz3[9]; break;
- case 'K': zdanie_SZ[licznik1] = klucz3[10]; break;
- case 'L': zdanie_SZ[licznik1] = klucz3[11]; break;
- case 'M': zdanie_SZ[licznik1] = klucz3[12]; break;
- case 'N': zdanie_SZ[licznik1] = klucz3[13]; break;
- case 'O': zdanie_SZ[licznik1] = klucz3[14]; break;
- case 'P': zdanie_SZ[licznik1] = klucz3[15]; break;
- case 'R': zdanie_SZ[licznik1] = klucz3[16]; break;
- case 'S': zdanie_SZ[licznik1] = klucz3[17]; break;
- case 'T': zdanie_SZ[licznik1] = klucz3[18]; break;
- case 'U': zdanie_SZ[licznik1] = klucz3[19]; break;
- case 'W': zdanie_SZ[licznik1] = klucz3[20]; break;
- case 'Y': zdanie_SZ[licznik1] = klucz3[21]; break;
- case 'Z': zdanie_SZ[licznik1] = klucz3[22]; break;
- case ' ': zdanie_SZ[licznik1] = klucz3[23]; break;
- case 'x': zdanie_SZ[licznik1] = klucz3[24]; break;
- case '?': zdanie_SZ[licznik1] = klucz3[25]; break;
- case '!': zdanie_SZ[licznik1] = klucz3[26]; break;
- case '.': zdanie_SZ[licznik1] = klucz3[27]; break;
- case ',': zdanie_SZ[licznik1] = klucz3[28]; break;
- case ':': zdanie_SZ[licznik1] = klucz3[29]; break;
- case '(': zdanie_SZ[licznik1] = klucz3[30]; break;
- case ')': zdanie_SZ[licznik1] = klucz3[31]; break;
- case '>': zdanie_SZ[licznik1] = klucz3[32]; break;
- case '<': zdanie_SZ[licznik1] = klucz3[33]; break;
- case '/': zdanie_SZ[licznik1] = klucz3[34]; break;
- default:
- {
- system("cls");
- cout<<endl;
- cout<<"\a \a nieprawidlowy znak w zdaniu!"<<endl;
- cout<<endl;
- delete [] zdanie_SZ;
- system("pause");
- exit(0);
- }
- }
- licznik1++;
- licznik2++;
- }
- break;
- default: cout<<"jakis error."<<endl;
- }
- }
- //zapisujemy do plik.txt
- fstream strimek;
- strimek.open("plik.txt", ios::out);
- k=0;
- int ile2 = (2*nile)/3;
- int ile3 = nile/3;
- for (int i=0; i<38; i++)
- {
- strimek<<klucz1[i]<<endl;
- }
- while(k<ile3)
- {
- strimek<<zdanie_SZ[k]<<endl;
- k++;
- }
- for (int i=0; i<35; i++)
- {
- strimek<<klucz2[i]<<endl;
- }
- while(k<ile2)
- {
- strimek<<zdanie_SZ[k]<<endl;
- k++;
- }
- for (int i=0; i<35; i++)
- {
- strimek<<klucz3[i]<<endl;
- }
- while(k<nile)
- {
- strimek<<zdanie_SZ[k]<<endl;
- k++;
- }
- strimek.close();
- delete [] zdanie_SZ;
- }
- void Szyfrownica::deszyfruj()
- {
- int licznik1=0, licznik2=0;
- string rozszyfrowane;
- int ile=0, K=0, U=0;
- bool koniec=false;
- string zdanieILE;
- //otwieramy mix
- fstream strim;
- strim.open("plik.txt", ios::in);
- if(strim.good()==false)
- {
- cout <<"\a \a brak pliku!"<<endl;
- system("pause");
- exit(0);
- }
- //liczymy znaki w zaszyfrowanym zdaniu
- while(koniec==false)
- {
- if(!(strim>>zdanieILE))
- {
- koniec = true;
- }
- ile++;
- }
- ile = ile - 1;
- if (ile == 0)
- {
- cout<<endl;
- cout<<"\a \a plik.txt jest pusty"<<endl; cout<<endl;
- system("pause");
- strim.close();
- exit(0);
- }
- strim.close();
- strim.clear();
- strim.open("plik.txt", ios::in);
- if(strim.good()==false)
- {
- cout <<"\a \a brak pliku!"<<endl;
- system("pause");
- exit(0);
- }
- int *zdanie_mix;
- zdanie_mix = new int[ile];
- //wczytujemy zdanie z plik.txt
- for(int i=0; i<ile; i++)
- {
- if(!(strim>>zdanie_mix[i]))
- {
- cout<<endl;
- cout<<"\a \a Niepoprawne zdanie!"<<endl; cout<<endl;
- system("pause");
- strim.close();
- exit(0);
- }
- }
- strim.close();
- strim.clear();
- fstream strimek, strimek2;
- ile = ile - 108;
- int ile2 = (2*ile)/3;
- int ile3 = ile/3;
- int *zdanie_sz;
- zdanie_sz = new int [ile];
- for (int i=0; i<38; i++)
- {
- klucz1[i]=zdanie_mix[U];
- U++;
- }
- while(K<ile3)
- {
- zdanie_sz[K]=zdanie_mix[U];
- K++;
- U++;
- }
- for (int i=0; i<35; i++)
- {
- klucz2[i]=zdanie_mix[U];
- U++;
- }
- while(K<ile2)
- {
- zdanie_sz[K]=zdanie_mix[U];
- K++;
- U++;
- }
- for (int i=0; i<35; i++)
- {
- klucz3[i]=zdanie_mix[U];
- U++;
- }
- while(K<ile)
- {
- zdanie_sz[K]=zdanie_mix[U];
- K++;
- U++;
- }
- delete [] zdanie_mix;
- for(int a=0; a<ile/3; a++)
- {
- if(zdanie_sz[licznik1] == klucz1[35])
- {
- licznik1++;
- for (int k=0; k<3; k++)
- {
- if (zdanie_sz[licznik1] == klucz1 [0]) rozszyfrowane.insert(licznik2, "A");
- else if (zdanie_sz[licznik1] == klucz1 [1]) rozszyfrowane.insert(licznik2, "B");
- else if (zdanie_sz[licznik1] == klucz1 [2]) rozszyfrowane.insert(licznik2, "C");
- else if (zdanie_sz[licznik1] == klucz1 [3]) rozszyfrowane.insert(licznik2, "D");
- else if (zdanie_sz[licznik1] == klucz1 [4]) rozszyfrowane.insert(licznik2, "E");
- else if (zdanie_sz[licznik1] == klucz1 [5]) rozszyfrowane.insert(licznik2, "F");
- else if (zdanie_sz[licznik1] == klucz1 [6]) rozszyfrowane.insert(licznik2, "G");
- else if (zdanie_sz[licznik1] == klucz1 [7]) rozszyfrowane.insert(licznik2, "H");
- else if (zdanie_sz[licznik1] == klucz1 [8]) rozszyfrowane.insert(licznik2, "I");
- else if (zdanie_sz[licznik1] == klucz1 [9]) rozszyfrowane.insert(licznik2, "J");
- else if (zdanie_sz[licznik1] == klucz1 [10]) rozszyfrowane.insert(licznik2, "K");
- else if (zdanie_sz[licznik1] == klucz1 [11]) rozszyfrowane.insert(licznik2, "L");
- else if (zdanie_sz[licznik1] == klucz1 [12]) rozszyfrowane.insert(licznik2, "M");
- else if (zdanie_sz[licznik1] == klucz1 [13]) rozszyfrowane.insert(licznik2, "N");
- else if (zdanie_sz[licznik1] == klucz1 [14]) rozszyfrowane.insert(licznik2, "O");
- else if (zdanie_sz[licznik1] == klucz1 [15]) rozszyfrowane.insert(licznik2, "P");
- else if (zdanie_sz[licznik1] == klucz1 [16]) rozszyfrowane.insert(licznik2, "R");
- else if (zdanie_sz[licznik1] == klucz1 [17]) rozszyfrowane.insert(licznik2, "S");
- else if (zdanie_sz[licznik1] == klucz1 [18]) rozszyfrowane.insert(licznik2, "T");
- else if (zdanie_sz[licznik1] == klucz1 [19]) rozszyfrowane.insert(licznik2, "U");
- else if (zdanie_sz[licznik1] == klucz1 [20]) rozszyfrowane.insert(licznik2, "W");
- else if (zdanie_sz[licznik1] == klucz1 [21]) rozszyfrowane.insert(licznik2, "Y");
- else if (zdanie_sz[licznik1] == klucz1 [22]) rozszyfrowane.insert(licznik2, "Z");
- else if (zdanie_sz[licznik1] == klucz1 [23]) rozszyfrowane.insert(licznik2, " ");
- else if (zdanie_sz[licznik1] == klucz1 [24]) ;
- else if (zdanie_sz[licznik1] == klucz1 [25]) rozszyfrowane.insert(licznik2, "?");
- else if (zdanie_sz[licznik1] == klucz1 [26]) rozszyfrowane.insert(licznik2, "!");
- else if (zdanie_sz[licznik1] == klucz1 [27]) rozszyfrowane.insert(licznik2, ".");
- else if (zdanie_sz[licznik1] == klucz1 [28]) rozszyfrowane.insert(licznik2, ",");
- else if (zdanie_sz[licznik1] == klucz1 [29]) rozszyfrowane.insert(licznik2, ":");
- else if (zdanie_sz[licznik1] == klucz1 [30]) rozszyfrowane.insert(licznik2, "(");
- else if (zdanie_sz[licznik1] == klucz1 [31]) rozszyfrowane.insert(licznik2, ")");
- else if (zdanie_sz[licznik1] == klucz1 [32]) rozszyfrowane.insert(licznik2, ">");
- else if (zdanie_sz[licznik1] == klucz1 [33]) rozszyfrowane.insert(licznik2, "<");
- else if (zdanie_sz[licznik1] == klucz1 [34]) rozszyfrowane.insert(licznik2, "/");
- else
- {
- system("cls");
- cout<<endl;
- cout<<endl;
- cout<<"zly klucz !"<<endl;
- cout<<endl;
- system("pause");
- exit(0);
- }
- licznik1++;
- licznik2++;
- }
- }
- else if(zdanie_sz[licznik1] == klucz1[36])
- {
- licznik1++;
- for (int k=0; k<3; k++)
- {
- if (zdanie_sz[licznik1] == klucz2 [0]) rozszyfrowane.insert(licznik2, "A");
- else if (zdanie_sz[licznik1] == klucz2 [1]) rozszyfrowane.insert(licznik2, "B");
- else if (zdanie_sz[licznik1] == klucz2 [2]) rozszyfrowane.insert(licznik2, "C");
- else if (zdanie_sz[licznik1] == klucz2 [3]) rozszyfrowane.insert(licznik2, "D");
- else if (zdanie_sz[licznik1] == klucz2 [4]) rozszyfrowane.insert(licznik2, "E");
- else if (zdanie_sz[licznik1] == klucz2 [5]) rozszyfrowane.insert(licznik2, "F");
- else if (zdanie_sz[licznik1] == klucz2 [6]) rozszyfrowane.insert(licznik2, "G");
- else if (zdanie_sz[licznik1] == klucz2 [7]) rozszyfrowane.insert(licznik2, "H");
- else if (zdanie_sz[licznik1] == klucz2 [8]) rozszyfrowane.insert(licznik2, "I");
- else if (zdanie_sz[licznik1] == klucz2 [9]) rozszyfrowane.insert(licznik2, "J");
- else if (zdanie_sz[licznik1] == klucz2 [10]) rozszyfrowane.insert(licznik2, "K");
- else if (zdanie_sz[licznik1] == klucz2 [11]) rozszyfrowane.insert(licznik2, "L");
- else if (zdanie_sz[licznik1] == klucz2 [12]) rozszyfrowane.insert(licznik2, "M");
- else if (zdanie_sz[licznik1] == klucz2 [13]) rozszyfrowane.insert(licznik2, "N");
- else if (zdanie_sz[licznik1] == klucz2 [14]) rozszyfrowane.insert(licznik2, "O");
- else if (zdanie_sz[licznik1] == klucz2 [15]) rozszyfrowane.insert(licznik2, "P");
- else if (zdanie_sz[licznik1] == klucz2 [16]) rozszyfrowane.insert(licznik2, "R");
- else if (zdanie_sz[licznik1] == klucz2 [17]) rozszyfrowane.insert(licznik2, "S");
- else if (zdanie_sz[licznik1] == klucz2 [18]) rozszyfrowane.insert(licznik2, "T");
- else if (zdanie_sz[licznik1] == klucz2 [19]) rozszyfrowane.insert(licznik2, "U");
- else if (zdanie_sz[licznik1] == klucz2 [20]) rozszyfrowane.insert(licznik2, "W");
- else if (zdanie_sz[licznik1] == klucz2 [21]) rozszyfrowane.insert(licznik2, "Y");
- else if (zdanie_sz[licznik1] == klucz2 [22]) rozszyfrowane.insert(licznik2, "Z");
- else if (zdanie_sz[licznik1] == klucz2 [23]) rozszyfrowane.insert(licznik2, " ");
- else if (zdanie_sz[licznik1] == klucz2 [24]) ;
- else if (zdanie_sz[licznik1] == klucz2 [25]) rozszyfrowane.insert(licznik2, "?");
- else if (zdanie_sz[licznik1] == klucz2 [26]) rozszyfrowane.insert(licznik2, "!");
- else if (zdanie_sz[licznik1] == klucz2 [27]) rozszyfrowane.insert(licznik2, ".");
- else if (zdanie_sz[licznik1] == klucz2 [28]) rozszyfrowane.insert(licznik2, ",");
- else if (zdanie_sz[licznik1] == klucz2 [29]) rozszyfrowane.insert(licznik2, ":");
- else if (zdanie_sz[licznik1] == klucz2 [30]) rozszyfrowane.insert(licznik2, "(");
- else if (zdanie_sz[licznik1] == klucz2 [31]) rozszyfrowane.insert(licznik2, ")");
- else if (zdanie_sz[licznik1] == klucz2 [32]) rozszyfrowane.insert(licznik2, ">");
- else if (zdanie_sz[licznik1] == klucz2 [33]) rozszyfrowane.insert(licznik2, "<");
- else if (zdanie_sz[licznik1] == klucz2 [34]) rozszyfrowane.insert(licznik2, "/");
- else
- {
- system("cls");
- cout<<endl;
- cout<<endl;
- cout<<"zly klucz !"<<endl;
- cout<<endl;
- system("pause");
- exit(0);
- }
- licznik1++;
- licznik2++;
- }
- }
- else if(zdanie_sz[licznik1] == klucz1[37])
- {
- licznik1++;
- for (int k=0; k<3; k++)
- {
- if (zdanie_sz[licznik1] == klucz3 [0]) rozszyfrowane.insert(licznik2, "A");
- else if (zdanie_sz[licznik1] == klucz3 [1]) rozszyfrowane.insert(licznik2, "B");
- else if (zdanie_sz[licznik1] == klucz3 [2]) rozszyfrowane.insert(licznik2, "C");
- else if (zdanie_sz[licznik1] == klucz3 [3]) rozszyfrowane.insert(licznik2, "D");
- else if (zdanie_sz[licznik1] == klucz3 [4]) rozszyfrowane.insert(licznik2, "E");
- else if (zdanie_sz[licznik1] == klucz3 [5]) rozszyfrowane.insert(licznik2, "F");
- else if (zdanie_sz[licznik1] == klucz3 [6]) rozszyfrowane.insert(licznik2, "G");
- else if (zdanie_sz[licznik1] == klucz3 [7]) rozszyfrowane.insert(licznik2, "H");
- else if (zdanie_sz[licznik1] == klucz3 [8]) rozszyfrowane.insert(licznik2, "I");
- else if (zdanie_sz[licznik1] == klucz3 [9]) rozszyfrowane.insert(licznik2, "J");
- else if (zdanie_sz[licznik1] == klucz3 [10]) rozszyfrowane.insert(licznik2, "K");
- else if (zdanie_sz[licznik1] == klucz3 [11]) rozszyfrowane.insert(licznik2, "L");
- else if (zdanie_sz[licznik1] == klucz3 [12]) rozszyfrowane.insert(licznik2, "M");
- else if (zdanie_sz[licznik1] == klucz3 [13]) rozszyfrowane.insert(licznik2, "N");
- else if (zdanie_sz[licznik1] == klucz3 [14]) rozszyfrowane.insert(licznik2, "O");
- else if (zdanie_sz[licznik1] == klucz3 [15]) rozszyfrowane.insert(licznik2, "P");
- else if (zdanie_sz[licznik1] == klucz3 [16]) rozszyfrowane.insert(licznik2, "R");
- else if (zdanie_sz[licznik1] == klucz3 [17]) rozszyfrowane.insert(licznik2, "S");
- else if (zdanie_sz[licznik1] == klucz3 [18]) rozszyfrowane.insert(licznik2, "T");
- else if (zdanie_sz[licznik1] == klucz3 [19]) rozszyfrowane.insert(licznik2, "U");
- else if (zdanie_sz[licznik1] == klucz3 [20]) rozszyfrowane.insert(licznik2, "W");
- else if (zdanie_sz[licznik1] == klucz3 [21]) rozszyfrowane.insert(licznik2, "Y");
- else if (zdanie_sz[licznik1] == klucz3 [22]) rozszyfrowane.insert(licznik2, "Z");
- else if (zdanie_sz[licznik1] == klucz3 [23]) rozszyfrowane.insert(licznik2, " ");
- else if (zdanie_sz[licznik1] == klucz3 [24]) ;
- else if (zdanie_sz[licznik1] == klucz3 [25]) rozszyfrowane.insert(licznik2, "?");
- else if (zdanie_sz[licznik1] == klucz3 [26]) rozszyfrowane.insert(licznik2, "!");
- else if (zdanie_sz[licznik1] == klucz3 [27]) rozszyfrowane.insert(licznik2, ".");
- else if (zdanie_sz[licznik1] == klucz3 [28]) rozszyfrowane.insert(licznik2, ",");
- else if (zdanie_sz[licznik1] == klucz3 [29]) rozszyfrowane.insert(licznik2, ":");
- else if (zdanie_sz[licznik1] == klucz3 [30]) rozszyfrowane.insert(licznik2, "(");
- else if (zdanie_sz[licznik1] == klucz3 [31]) rozszyfrowane.insert(licznik2, ")");
- else if (zdanie_sz[licznik1] == klucz3 [32]) rozszyfrowane.insert(licznik2, ">");
- else if (zdanie_sz[licznik1] == klucz3 [33]) rozszyfrowane.insert(licznik2, "<");
- else if (zdanie_sz[licznik1] == klucz3 [34]) rozszyfrowane.insert(licznik2, "/");
- else
- {
- system("cls");
- cout<<endl;
- cout<<endl;
- cout<<"zly klucz !"<<endl;
- cout<<endl;
- system("pause");
- exit(0);
- }
- licznik1++;
- licznik2++;
- }
- }
- }
- delete [] zdanie_sz;
- //zdanie do pliku.
- fstream strim12;
- strim12.open("plik.txt", ios::out);
- strim12<<rozszyfrowane;
- strim12.close();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement