[python] PyCrypto를 사용하여 파일 암호화하기

파일을 암호화하기 위해 PyCrypto 라이브러리를 사용할 수 있습니다. PyCrypto는 Python에서 암호화와 관련된 작업을 수행할 수 있는 강력한 도구입니다. 이 블로그 포스트에서는 PyCrypto를 사용하여 파일을 암호화하는 방법을 알아보겠습니다.

PyCrypto 설치하기

PyCrypto는 파이썬 패키지로 설치할 수 있습니다. 다음의 명령어를 사용하여 PyCrypto를 설치할 수 있습니다:

pip install pycrypto

파일 암호화하기

다음은 PyCrypto를 사용하여 파일을 암호화하는 예제 코드입니다:

import os
from Crypto.Cipher import AES
from Crypto.Random import get_random_bytes

def encrypt_file(key, input_file, output_file):
    chunk_size = 64 * 1024  # 64KB
    init_vector = get_random_bytes(16)
    encryptor = AES.new(key, AES.MODE_CBC, init_vector)

    with open(input_file, 'rb') as file_in:
        with open(output_file, 'wb') as file_out:
            file_out.write(init_vector)
            while True:
                chunk = file_in.read(chunk_size)
                if len(chunk) == 0:
                    break
                elif len(chunk) % 16 != 0:
                    chunk += b' ' * (16 - (len(chunk) % 16))
                file_out.write(encryptor.encrypt(chunk))

    print('암호화가 완료되었습니다.')

key = b'0123456789abcdef'  # 암호화에 사용할 키 (16바이트여야 함)
input_file = 'plain.txt'  # 암호화할 파일 경로
output_file = 'encrypted.bin'  # 암호화된 파일 생성 경로

encrypt_file(key, input_file, output_file)

위의 코드에서는 AES 알고리즘을 사용하여 파일을 암호화합니다. encrypt_file 함수는 주어진 키와 입력 파일 경로, 출력 파일 경로를 사용하여 파일을 암호화합니다.

실행 결과

위의 코드를 실행하면, 입력 파일이 AES 알고리즘을 사용하여 암호화된 출력 파일이 생성됩니다. 암호화된 파일의 내용은 원본 파일과 완전히 다르므로, 암호화된 파일을 복호화하지 않는 이상 원본 파일 내용을 알 수 없습니다.

결론

PyCrypto 라이브러리를 사용하면 Python에서 파일을 암호화할 수 있습니다. 이 블로그 포스트에서는 PyCrypto를 사용하여 파일을 AES 알고리즘으로 암호화하는 방법을 알아보았습니다. 암호화된 파일은 외부에서 오류 없이 읽을 수 없으므로, 보안적인 요구 사항에 따라 적절한 키 값과 알고리즘을 선택하여 파일을 암호화할 수 있습니다.

참고 자료