Facebook
From Adrian, 6 Years ago, written in C++.
Embed
Download Paste or View Raw
Hits: 298
  1. #include<cstdio>
  2. #include<iostream>
  3. #include <iomanip>
  4.  
  5.  
  6.  
  7. using namespace std;
  8.  
  9.  
  10. int szyfrowanie(unsigned short &szyfr, unsigned short tresc, unsigned short klucz)
  11. {
  12.        
  13.         return szyfr = tresc ^ klucz;
  14.  
  15. }
  16.  
  17. char deszyfrowanie( unsigned short szyfr, unsigned short &tresc, unsigned short klucz)
  18. {
  19.        
  20.  
  21.         return tresc = szyfr ^ klucz;
  22.  
  23. }
  24.  
  25.  
  26. char* wypisz(unsigned short rej)
  27. {
  28.         static char bufor[32] = { 0 };
  29.  
  30.         unsigned short n = 0;
  31.  
  32.         n = sprintf(bufor, "", rej, rej);
  33.  
  34.         for (int i = 31; i >= 0; i--)
  35.                 n += sprintf(&bufor[n], "%d ", static_cast<bool>(rej & (1 << i)));
  36.  
  37.         return bufor;
  38.  
  39. }
  40.  
  41. int main()
  42. {
  43.  
  44.  
  45.         unsigned short klucz = 2011;
  46.  
  47.         unsigned short szyfr;
  48.  
  49.         unsigned short tresc = 2256;
  50.  
  51.         int wybor;
  52.  
  53.         bool koniec = false;
  54.  
  55.         do
  56.         {
  57.                 cout << ("Co chcesz zrobic?") << endl;
  58.                 cout << ("1. Zaszyfruj tekst ") << endl;
  59.                 cout << ("2. Odszyfruj tekst ") << endl;
  60.                 cout << ("3. Zakoncz ") << endl;
  61.  
  62.                 cin >> wybor;
  63.  
  64.                 switch (wybor)
  65.                 {
  66.  
  67.                 case(1):
  68.                 {
  69.  
  70.                        
  71.                         printf("\nSzyforwanie tresci z uzyciem XOR:\n");
  72.                         printf("tresc:\t%s\n", wypisz(tresc));
  73.                         printf("klucz:\t%s\n", wypisz(klucz));
  74.                        
  75.                         szyfrowanie(szyfr, tresc, klucz);
  76.  
  77.                         printf("szyfr:\t%s\n", wypisz(szyfr));
  78.                         break;
  79.                 }
  80.                 case(2):
  81.                 {
  82.                         deszyfrowanie(szyfr, tresc, klucz);
  83.  
  84.                         printf("\nOdszyforwanie tresci z uzyciem XOR:\n");
  85.                         printf("szyfr:\t%s\n", wypisz(szyfr));
  86.                         printf("klucz:\t%s\n", wypisz(klucz));
  87.                         printf("tresc:\t%s\n", wypisz(tresc));
  88.                         break;
  89.                 }
  90.                 case(3):
  91.                 {
  92.                         koniec = true;
  93.                         break;
  94.                 }
  95.  
  96.         }
  97. } while (koniec == false);
  98.  
  99. return 0;
  100. }