Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- #include "14.1.h"
- using namespace std;
- void caiser()
- {
- string s; // строка
- int key; // ключ шифра Цезаря
- cout << "Enter a string > ";
- cin >> s; // вводим строку
- cout << "Enter a key for first crypt (1-25) > ";
- cin >> key; // вводим ключ
- for (int i = 0; i < s.length(); i++)
- {
- s[i] += key; // шифруем! к символу можно добавлять целое число
- }
- cout << "\nEncrypted: " << s << endl; // выводим шифрованный текст
- }
- void DecryptCaiser()
- {
- string s; // строка
- int key; // ключ шифра Цезаря
- cout << "Enter a string > ";
- cin >> s; // вводим строку
- cout << "\nEnter the key > ";
- cin >> key; // заправшиваем ключ
- for (int i = 0; i < s.length(); i++)
- {
- s[i] -= key; // расшифровываем
- }
- cout << "Your string = " << s; // выводим строку
- }
- void cryptXor()
- {
- string s; // строка
- int key; // ключ
- cout << "Enter a string > ";
- cin >> s; // вводим строку
- cout << "Enter a key > ";
- cin >> key; // вводим ключ
- for (int i = 0; i < s.length(); i++)
- {
- s[i] = s[i] ^ key; // шифруем! применяем операцию XOR
- }
- cout << "\nEncrypted: " << endl; // выводим шифрованный текст
- for (int i = 0; i < s.length(); i++)
- {
- if ((unsigned char)s[i] < 64)
- {
- cout << ' '; // если системный символ, то выводим пробел
- }
- else
- {
- cout << s[i];
- }
- }
- cout << endl;
- }
- void decryptXor()
- {
- string s; // строка
- int key; // ключ
- cout << "Enter a string > ";
- cin >> s; // вводим строку
- cout << "Enter a key > ";
- cin >> key; // вводим ключ
- for (int i = 0; i < s.length(); i++)
- {
- s[i] = s[i] ^ key; // расшифровываем аналогично шифрованию
- }
- cout << "Your string = " << s; // выводим строку}
- }
- int main()
- {
- int var;
- while (true)
- {
- cout << "\nGet Var(1-2)> ";
- cin >> var;
- switch (var)
- {
- case 1:
- caiser();
- DecryptCaiser();
- break;
- case 2:
- cryptXor();
- decryptXor();
- break;
- default:
- break;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement