[python] PyCrypto를 사용하여 암호화 프로그램 작성하기

암호화는 데이터를 안전하게 보호하기 위한 중요한 요소입니다. 파이썬에서는 PyCrypto라는 라이브러리를 사용하여 간단하게 암호화 프로그램을 작성할 수 있습니다. 이번 블로그 포스트에서는 PyCrypto를 사용하여 파일을 암호화하는 예제 코드를 소개하겠습니다.

PyCrypto 설치하기

PyCrypto를 사용하기 위해서는 우선 해당 라이브러리를 설치해야 합니다. 파이썬 패키지 관리자인 pip를 사용하여 설치할 수 있습니다. 아래 명령어를 실행하여 PyCrypto를 설치합니다.

pip install pycrypto

파일 암호화하기

from Crypto.Cipher import AES

def encrypt_file(input_file, output_file, key):
    chunk_size = 64 * 1024
    cipher = AES.new(key, AES.MODE_ECB)
    
    with open(input_file, 'rb') as file_in:
        with open(output_file, 'wb') as file_out:
            while True:
                chunk = file_in.read(chunk_size)
                if len(chunk) == 0:
                    break
                elif len(chunk) % 16 != 0:
                    chunk += b' ' * (16 - (len(chunk) % 16))
                encrypted_chunk = cipher.encrypt(chunk)
                file_out.write(encrypted_chunk)

# 암호화할 파일 경로
input_file = "example.txt"
# 암호화된 파일을 저장할 경로
output_file = "encrypted_example.txt"
# 암호화에 사용할 키
key = b'0123456789abcdef'

encrypt_file(input_file, output_file, key)

위 코드는 AES 알고리즘을 사용하여 파일을 암호화하는 함수인 encrypt_file을 정의한 예제입니다. input_file 매개변수에 암호화할 파일의 경로를, output_file 매개변수에 암호화된 파일을 저장할 경로를, key 매개변수에 암호화에 사용될 키를 전달합니다.

암호화할 파일을 읽고, 일정한 크기로 나누어 암호화한 후 output_file에 저장합니다. 암호화한 파일 크기가 16의 배수가 아닌 경우, 나머지 부분은 공백으로 채워집니다.

결론

PyCrypto를 사용하면 파이썬에서 파일을 간단하게 암호화할 수 있습니다. 이번 예제를 통해 파일 암호화하는 방법에 대해 알아보았습니다. PyCrypto는 다양한 암호화 알고리즘을 지원하므로, 필요에 따라 다른 알고리즘을 사용하여 암호화 프로그램을 작성할 수도 있습니다.

참고 자료