[c언어] 파일 암호화 및 복호화

이번 포스트에서는 C 언어를 사용하여 파일을 암호화하고 복호화하는 방법에 대해 알아보겠습니다.

암호화

파일을 암호화하는 가장 간단한 방법 중 하나는 각 바이트를 특정한 값을 더하거나 뺌으로써 바꾸는 것입니다. 이를 통해 파일을 쉽게 암호화할 수 있습니다.

#include <stdio.h>

void encryptFile(FILE *inputFile, FILE *outputFile, char key) {
    int ch;
    while ((ch = fgetc(inputFile)) != EOF) {
        fputc(ch + key, outputFile);
    }
}

int main() {
    FILE *inputFile = fopen("plain.txt", "rb");
    FILE *outputFile = fopen("encrypted.txt", "wb");
    
    char key = '5'; // 암호화 키
    encryptFile(inputFile, outputFile, key);
    
    fclose(inputFile);
    fclose(outputFile);
    
    return 0;
}

이 코드는 plain.txt 파일을 읽어서 각 바이트에 암호화 키를 더한 뒤 encrypted.txt 파일에 씁니다.

복호화

암호화된 파일을 복호화하는 것도 암호화와 비슷한 방식으로 수행할 수 있습니다.

void decryptFile(FILE *inputFile, FILE *outputFile, char key) {
    int ch;
    while ((ch = fgetc(inputFile)) != EOF) {
        fputc(ch - key, outputFile);
    }
}

int main() {
    FILE *inputFile = fopen("encrypted.txt", "rb");
    FILE *outputFile = fopen("decrypted.txt", "wb");
    
    char key = '5'; // 복호화 키
    decryptFile(inputFile, outputFile, key);
    
    fclose(inputFile);
    fclose(outputFile);
    
    return 0;
}

이 코드는 암호화된 encrypted.txt 파일을 읽어서 암호화 키를 빼고 decrypted.txt 파일에 씁니다.

마무리

이러한 간단한 파일 암호화 및 복호화 방법은 보안에 취약할 수 있으므로 실제 개발 시에는 안전한 암호화 알고리즘을 사용하는 것이 좋습니다.

참고 자료