[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는 다양한 암호화 알고리즘을 지원하므로, 필요에 따라 다른 알고리즘을 사용하여 암호화 프로그램을 작성할 수도 있습니다.