#include <stdio.h>
#include <string.h>
#include <stdlib.h>
char* XORCipher(char* str, char* key, int slen) {
char* output = (char*)malloc(sizeof(char) * slen + 1);
int keylen = strlen(key);
for (int i = 0; i < slen; ++i) {
output[i] = str[i] ^ key[i % keylen];
}
output[slen] = 0;
return output;
}
int main(void)
{
char str[] = "C Programming Language";
char key[] = "secretkey";
int slen = strlen(str);
char* cipherText = XORCipher(str, key, slen);
puts(cipherText);
char* decryptText = XORCipher(cipherText, key, slen);
puts(decryptText);
free(cipherText);
free(decryptText);
}
/*
run:
0E3
C Programming Language
*/