1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <string.h> void XORCipher(char* data, const char* key, int dataLen, int keyLen, char* output) { for (int i = 0; i < dataLen; ++i) { output[i] = data[i] ^ key[i % keyLen]; } output[dataLen] = '\0'; } int main(void) { char text[] = "This is a house."; char key[] = "123456"; int dataLen = strlen(text); int keyLen = strlen(key); // ¾ÏÈ£È °á°ú¿Í º¹È£È °á°ú¸¦ ´ãÀ» ¹öÆÛ char cipherText[100]; // ÃæºÐÈ÷ Å« Å©±â·Î ¼±¾ð char plainText[100]; XORCipher(text, key, dataLen, keyLen, cipherText); XORCipher(cipherText, key, dataLen, keyLen, plainText); printf("¾ÏÈ£È ÀüÀÇ ¹®ÀÚ¿=%s\n", text); printf("¾ÏÈ£È Å°=%s\n", key); printf("¾ÏÈ£È ÈÄÀÇ ¹®ÀÚ¿=%s\n", cipherText); printf("º¹È£È ÈÄÀÇ ¹®ÀÚ¿=%s\n", plainText); return 0; } | cs |