#include <iostream>
#include <string>
using namespace std;
void charout(wstring const& str)
{
for (unsigned i = 0 ; i < str.length(); ++i)
cout << static_cast<int>(str[i]) << ' ';
cout << '\n';
}
int main()
{
wstring toEncrypt = L"Test\u04EE";
wchar_t keyToEncrypt = 'd';
cout << "Before: ";
charout(toEncrypt);
for (int temp = 0; temp < toEncrypt.size(); temp++)
toEncrypt[temp] ^= keyToEncrypt;
cout << "The encrypted data = ";
charout(toEncrypt);
for (int temp = 0; temp < toEncrypt.size(); temp++)
toEncrypt[temp] ^= keyToEncrypt;
cout << "The unencrypted data = ";
charout(toEncrypt);
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPiAKCnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp2b2lkIGNoYXJvdXQod3N0cmluZyBjb25zdCYgc3RyKQp7CiAgZm9yICh1bnNpZ25lZCBpID0gMCA7IGkgPCBzdHIubGVuZ3RoKCk7ICsraSkKICAgIGNvdXQgPDwgc3RhdGljX2Nhc3Q8aW50PihzdHJbaV0pIDw8ICcgJzsKICBjb3V0IDw8ICdcbic7Cn0KCmludCBtYWluKCkKewogIHdzdHJpbmcgdG9FbmNyeXB0ID0gTCJUZXN0XHUwNEVFIjsKICB3Y2hhcl90IGtleVRvRW5jcnlwdCA9ICdkJzsKICAKICBjb3V0IDw8ICJCZWZvcmU6ICI7CiAgY2hhcm91dCh0b0VuY3J5cHQpOwoKICBmb3IgKGludCB0ZW1wID0gMDsgdGVtcCA8IHRvRW5jcnlwdC5zaXplKCk7IHRlbXArKykKICAgIHRvRW5jcnlwdFt0ZW1wXSBePSBrZXlUb0VuY3J5cHQ7CiAgY291dCA8PCAiVGhlIGVuY3J5cHRlZCBkYXRhID0gIjsKICBjaGFyb3V0KHRvRW5jcnlwdCk7CiAgCiAgZm9yIChpbnQgdGVtcCA9IDA7IHRlbXAgPCB0b0VuY3J5cHQuc2l6ZSgpOyB0ZW1wKyspCiAgICB0b0VuY3J5cHRbdGVtcF0gXj0ga2V5VG9FbmNyeXB0OwogIGNvdXQgPDwgIlRoZSB1bmVuY3J5cHRlZCBkYXRhID0gIjsJCiAgY2hhcm91dCh0b0VuY3J5cHQpOwp9Cg==