Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- #include <fstream>
- using namespace std;
- void main()
- {
- setlocale(LC_ALL, "russian");
- string message; //сообщение, для шифровки\расшифровки
- string key; //наш ключ, каждая буква - сдвиг для буквы сообщения
- ofstream fout("output.txt");
- cout << "Enter message to encrypt/decrypt:";
- getline(cin, message);
- cout << "Enter key:";
- getline(cin, key);
- int key_size = key.size();
- for (int i = 0; i < message.size(); i++)
- {
- //i%key_size - номер сдвига в ключе
- // ^ - XOR, сложение по модулю 2,
- //обладает классным свойством: (a^b)^b=a
- message[i] = message[i] ^ key[i%key_size];
- }
- cout << "Result:" << message << endl;
- fout << message;
- for (int i = 0; i < message.size(); i++)
- {
- message[i] = message[i] ^ key[i%key_size];
- }
- cout << "Decryption:" << message << endl;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement