#include <iostream>
#include <string>
void simple_xor(void* data, std::size_t size, const std::string& password)
{
char* p = static_cast<char*>(data);
for (std::size_t i = 0; size-- != 0; ++i)
*p++ ^= password[i % password.size()];
}
int main()
{
std::string data = "Guten Tag, ich bin geheim!";
std::string password = "blubb";
simple_xor(&data[0], data.size(), password);
simple_xor(&data[0], data.size(), password);
std::cout << data << '\n';
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgogCnZvaWQgc2ltcGxlX3hvcih2b2lkKiBkYXRhLCBzdGQ6OnNpemVfdCBzaXplLCBjb25zdCBzdGQ6OnN0cmluZyYgcGFzc3dvcmQpCnsKICBjaGFyKiBwID0gc3RhdGljX2Nhc3Q8Y2hhcio+KGRhdGEpOwogIGZvciAoc3RkOjpzaXplX3QgaSA9IDA7IHNpemUtLSAhPSAwOyArK2kpCiAgICAqcCsrIF49IHBhc3N3b3JkW2kgJSBwYXNzd29yZC5zaXplKCldOwp9CiAKaW50IG1haW4oKQp7CiAgc3RkOjpzdHJpbmcgZGF0YSA9ICJHdXRlbiBUYWcsIGljaCBiaW4gZ2VoZWltISI7CiAgc3RkOjpzdHJpbmcgcGFzc3dvcmQgPSAiYmx1YmIiOwogIHNpbXBsZV94b3IoJmRhdGFbMF0sIGRhdGEuc2l6ZSgpLCBwYXNzd29yZCk7CiAgc2ltcGxlX3hvcigmZGF0YVswXSwgZGF0YS5zaXplKCksIHBhc3N3b3JkKTsKICBzdGQ6OmNvdXQgPDwgZGF0YSA8PCAnXG4nOwp9IA==