[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 공식 문서를 확인하시기 바랍니다.