#include <stdio.h>
#include <iostream>
#include <iomanip>
using namespace std;
void encrypt_stand_message();
const char key[] = "ALCtALC sixth headed civic outlying mayflower irregular boneless prevail freebase delirious projector dreamless";
const int keylen = (sizeof(key) / sizeof(key[0])) - 1;//strlen(key)
int main ()
{
cout << "Plese choose option?\n\n";
cout << "1. Cipher text\n\n";
cout << "\n";
int option = 0;
cin >> option;
cin.ignore();
switch (option){
case 1:
encrypt_stand_message();
encrypt_stand_message();
exit(1);
}
}
void encrypt_stand_message(){
int x = 0, y = 0;
char cipher;
char message[300];
//system("clear");
cout << "Please enter the code to encrypt?\n\n";
cin.get(message, sizeof(message));
cin.ignore();
cout << message << '\n';
char a = message[x];
char b = key[y];
while (a != '\0'){
cipher = a ^ b;
//cout << cipher;
cout << "'" << cipher << "' = " << hex << showbase << setw(2) << setfill('0') << (int)cipher << "\n";
x += 1;
y += 1;
a = message[x];
b = key[y % keylen];
}
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxpb3N0cmVhbT4KI2luY2x1ZGUgPGlvbWFuaXA+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdm9pZCBlbmNyeXB0X3N0YW5kX21lc3NhZ2UoKTsKCmNvbnN0IGNoYXIga2V5W10gPSAiQUxDdEFMQyBzaXh0aCBoZWFkZWQgY2l2aWMgb3V0bHlpbmcgbWF5Zmxvd2VyIGlycmVndWxhciBib25lbGVzcyBwcmV2YWlsIGZyZWViYXNlIGRlbGlyaW91cyBwcm9qZWN0b3IgZHJlYW1sZXNzIjsKY29uc3QgaW50IGtleWxlbiA9IChzaXplb2Yoa2V5KSAvIHNpemVvZihrZXlbMF0pKSAtIDE7Ly9zdHJsZW4oa2V5KQoKaW50IG1haW4gKCkKewogICAgY291dCA8PCAiUGxlc2UgY2hvb3NlIG9wdGlvbj9cblxuIjsKICAgIGNvdXQgPDwgIjEuIENpcGhlciB0ZXh0XG5cbiI7CiAgICBjb3V0IDw8ICJcbiI7CgoJaW50IG9wdGlvbiA9IDA7CiAgICBjaW4gPj4gb3B0aW9uOwogICAgY2luLmlnbm9yZSgpOwoKICAgIHN3aXRjaCAob3B0aW9uKXsKICAgICAgICBjYXNlIDE6CiAgICAgICAgCWVuY3J5cHRfc3RhbmRfbWVzc2FnZSgpOwogICAgICAgIAllbmNyeXB0X3N0YW5kX21lc3NhZ2UoKTsKICAgICAgICAJZXhpdCgxKTsKCX0KfQoKdm9pZCBlbmNyeXB0X3N0YW5kX21lc3NhZ2UoKXsKCglpbnQgeCA9IDAsIHkgPSAwOwoJY2hhciBjaXBoZXI7CgljaGFyIG1lc3NhZ2VbMzAwXTsKCiAgICAvL3N5c3RlbSgiY2xlYXIiKTsKCiAgICBjb3V0IDw8ICJQbGVhc2UgZW50ZXIgdGhlIGNvZGUgdG8gZW5jcnlwdD9cblxuIjsKCiAgICBjaW4uZ2V0KG1lc3NhZ2UsIHNpemVvZihtZXNzYWdlKSk7CiAgICBjaW4uaWdub3JlKCk7CiAgICBjb3V0IDw8IG1lc3NhZ2UgPDwgJ1xuJzsKCiAgICBjaGFyIGEgPSBtZXNzYWdlW3hdOwogICAgY2hhciBiID0ga2V5W3ldOwoKICAgIHdoaWxlIChhICE9ICdcMCcpewogIAogICAgICAgIGNpcGhlciA9IGEgXiBiOwogICAgCiAgICAgICAgLy9jb3V0IDw8IGNpcGhlcjsKICAgICAgICBjb3V0IDw8ICInIiA8PCBjaXBoZXIgPDwgIicgPSAiIDw8IGhleCA8PCBzaG93YmFzZSA8PCBzZXR3KDIpIDw8IHNldGZpbGwoJzAnKSA8PCAoaW50KWNpcGhlciA8PCAiXG4iOwoKICAgICAgICB4ICs9IDE7CiAgICAgICAgeSArPSAxOwogICAgCiAgICAgICAgYSA9IG1lc3NhZ2VbeF07CiAgICAgICAgYiA9IGtleVt5ICUga2V5bGVuXTsKCX0KfQ==