보안이 중요한 파일을 보호하기 위해 파일을 암호화하고 압축하는 것은 일반적인 요구 사항입니다. 이번 가이드에서는 파이썬을 사용하여 파일 암호화 및 압축을 구현하는 방법을 설명하겠습니다.
암호화를 위한 패키지 선택
파이썬에서 파일을 암호화하기 위해 cryptography
패키지를 사용할 수 있습니다. 이 패키지는 강력한 암호화 알고리즘과 기능을 제공하여 파일을 안전하게 암호화할 수 있습니다. cryptography
패키지를 설치하려면 다음 명령을 실행합니다.
pip install cryptography
파일 암호화
파일을 암호화하기 위해 먼저 암호화 키를 생성해야 합니다. cryptography
패키지에서 Fernet
클래스를 사용하여 대칭 키를 생성할 수 있습니다. 다음은 대칭 키를 생성하는 코드 예제입니다.
from cryptography.fernet import Fernet
def generate_key():
return Fernet.generate_key()
key = generate_key()
키를 생성한 후에는 원본 파일을 암호화할 준비가 되었습니다. 다음 코드는 파일을 암호화하는 함수를 보여줍니다.
def encrypt_file(file_path, key):
cipher = Fernet(key)
with open(file_path, 'rb') as file:
plaintext = file.read()
encrypted_text = cipher.encrypt(plaintext)
with open(file_path + '.encrypted', 'wb') as file:
file.write(encrypted_text)
위의 코드에서는 file_path
에 암호화할 파일의 경로를 전달하고, key
에는 생성된 키를 전달합니다. 암호화된 파일은 .encrypted
확장자를 가지도록 저장됩니다.
파일 압축
파일을 압축하기 위해 zipfile
모듈을 사용할 수 있습니다. zipfile
모듈은 파일 및 디렉토리를 압축하고 압축된 파일을 생성하는 기능을 제공합니다. 다음 코드는 파일을 압축하는 함수를 보여줍니다.
import zipfile
def compress_file(file_path):
with zipfile.ZipFile(file_path + '.zip', 'w') as zip_file:
zip_file.write(file_path)
위의 코드에서는 file_path
에 압축할 파일의 경로를 전달합니다. 압축된 파일은 .zip
확장자를 가지도록 저장됩니다.
파일 암호화 및 압축
파일을 암호화하고 압축하기 위해 위의 두 함수를 결합할 수 있습니다. 다음 코드는 파일을 암호화하고 압축하는 함수를 보여줍니다.
def encrypt_and_compress_file(file_path, key):
encrypt_file(file_path, key)
compress_file(file_path + '.encrypted')
# 사용 예시
key = generate_key()
file_path = 'path/to/file.txt'
encrypt_and_compress_file(file_path, key)
위의 코드에서는 generate_key()
함수를 사용하여 암호화 키를 생성하고, file_path
에 암호화 및 압축할 파일의 경로를 전달합니다.
이제 파일 암호화 및 압축 기술을 구현하기 위해 파이썬의 cryptography
패키지와 zipfile
모듈을 사용할 수 있습니다. 이를 통해 중요한 파일을 안전하게 보호할 수 있습니다.
참고 자료
#파이썬 #파일암호화