#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char* XOREncryption(char* s, char* key, int slen) {
char* result = (char *)malloc(sizeof(char) * slen + 1);
int keyLen = strlen(key);
for (int i = 0; i < slen; i++) {
result[i] = s[i] ^ key[i % keyLen];
}
result[slen] = 0;
return result;
}
int main(void) {
char* s = "C is a general-purpose, procedural computer programming language";
char* key = "secretkey";
int slen = strlen(s);
char* cipher = XOREncryption(s, key, slen);
puts(cipher);
char* noncipher = XOREncryption(cipher, key, slen);
puts(noncipher);
free(cipher);
free(noncipher);
return 0;
}
/*
run:
0E
☺E§K☻∟↔
C is a general-purpose, procedural computer programming language
*/