SHARE
TWEET

Untitled

a guest Dec 11th, 2019 90 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <iostream>
  2. #include <string>
  3. #include "14.1.h"
  4.  
  5. using namespace std;
  6.  
  7.  
  8. void caiser()
  9. {
  10.     string s; // строка
  11.     int key; // ключ шифра Цезаря
  12.  
  13.     cout << "Enter a string > ";
  14.     cin >> s; // вводим строку
  15.  
  16.     cout << "Enter a key for first crypt (1-25) > ";
  17.     cin >> key; // вводим ключ
  18.  
  19.     for (int i = 0; i < s.length(); i++)
  20.     {
  21.         s[i] += key; // шифруем! к символу можно добавлять целое число
  22.     }
  23.  
  24.     cout << "\nEncrypted: " << s << endl; // выводим шифрованный текст
  25. }
  26.  
  27. void DecryptCaiser()
  28. {
  29.     string s; // строка
  30.     int key; // ключ шифра Цезаря
  31.  
  32.     cout << "Enter a string > ";
  33.     cin >> s; // вводим строку
  34.  
  35.     cout << "\nEnter the key > ";
  36.     cin >> key; // заправшиваем ключ
  37.  
  38.     for (int i = 0; i < s.length(); i++)
  39.     {
  40.         s[i] -= key; // расшифровываем
  41.     }
  42.  
  43.     cout << "Your string = " << s; // выводим строку
  44. }
  45.  
  46. void  cryptXor()
  47. {
  48.     string s; // строка
  49.     int key; // ключ
  50.  
  51.     cout << "Enter a string > ";
  52.     cin >> s; // вводим строку
  53.  
  54.     cout << "Enter a key > ";
  55.     cin >> key; // вводим ключ
  56.  
  57.     for (int i = 0; i < s.length(); i++)
  58.     {
  59.         s[i] = s[i] ^ key; // шифруем! применяем операцию XOR
  60.     }
  61.  
  62.     cout << "\nEncrypted: " << endl; // выводим шифрованный текст
  63.  
  64.     for (int i = 0; i < s.length(); i++)
  65.     {
  66.         if ((unsigned char)s[i] < 64)
  67.         {
  68.             cout << ' '; // если системный символ, то выводим пробел
  69.         }
  70.         else
  71.         {
  72.             cout << s[i];
  73.         }
  74.     }
  75.     cout << endl;
  76. }
  77.  
  78. void decryptXor()
  79. {
  80.     string s; // строка
  81.     int key; // ключ
  82.  
  83.     cout << "Enter a string > ";
  84.     cin >> s; // вводим строку
  85.  
  86.     cout << "Enter a key > ";
  87.     cin >> key; // вводим ключ
  88.  
  89.     for (int i = 0; i < s.length(); i++)
  90.     {
  91.         s[i] = s[i] ^ key; // расшифровываем аналогично шифрованию
  92.     }
  93.  
  94.     cout << "Your string = " << s; // выводим строку}
  95. }
  96.  
  97. int main()
  98. {
  99.     int var;
  100.     while (true)
  101.     {
  102.         cout << "\nGet Var(1-2)> ";
  103.         cin >> var;
  104.         switch (var)
  105.         {
  106.         case 1:
  107.             caiser();
  108.             DecryptCaiser();
  109.             break;
  110.         case 2:
  111.             cryptXor();
  112.             decryptXor();
  113.             break;
  114.         default:
  115.             break;
  116.         }
  117.     }
  118. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Not a member of Pastebin yet?
Sign Up, it unlocks many cool features!
 
Top