[c++] 파일 암호화
#include <iostream>
#include <fstream>
#include <openssl/aes.h>
#include <openssl/rand.h>

void encryptFile(const std::string& inputFile, const std::string& outputFile, const std::string& key) {
    // 파일 열기
    std::ifstream inFile(inputFile, std::ios::binary);
    std::ofstream outFile(outputFile, std::ios::binary);

    // 암호화 키 설정
    AES_KEY aesKey;
    AES_set_encrypt_key((const unsigned char*)key.c_str(), key.length() * 8, &aesKey);

    // 파일 내용 암호화
    unsigned char inBuffer[AES_BLOCK_SIZE];
    unsigned char outBuffer[AES_BLOCK_SIZE];
    while(inFile.read((char*)inBuffer, AES_BLOCK_SIZE)) {
        AES_encrypt(inBuffer, outBuffer, &aesKey);
        outFile.write((char*)outBuffer, AES_BLOCK_SIZE);
    }

    // 파일 닫기
    inFile.close();
    outFile.close();
}

int main() {
    std::string inputFile = "plainfile.txt";
    std::string outputFile = "encryptedfile.enc";
    std::string key = "myencryptionkey";

    encryptFile(inputFile, outputFile, key);

    return 0;
}

위의 예제 코드는 OpenSSL 라이브러리를 사용하여 파일을 AES 알고리즘을 이용해 암호화하는 방법을 보여줍니다.

이 코드에서는 encryptFile 함수를 통해 파일의 내용을 읽어 암호화하고, 그 결과를 새로운 파일에 쓰는 과정을 구현했습니다. 주의할 점은 보안을 위해 안전한 키 관리 방법을 사용해야 한다는 점입니다.

파일 암호화에 대한 더 자세한 내용은 OpenSSL 공식 문서를 확인하시기 바랍니다.