[파이썬] 파일의 암호화와 복호화

파일의 암호화와 복호화는 개인정보나 중요한 데이터를 보호하는 데 중요한 역할을 합니다. Python은 간편하고 강력한 암호화 기능을 제공하여 파일을 안전하게 보호할 수 있습니다. 이 블로그 포스트에서는 Python을 사용하여 파일을 암호화하고 복호화하는 방법을 알아보겠습니다.

암호화란?

암호화는 원래의 파일을 암호화된 형태로 변환하는 과정을 의미합니다. 암호화된 파일은 외부에서 열릴 수 없으며, 오직 암호화된 파일을 복호화하는 키로만 열 수 있습니다. 이를 통해 파일의 안전한 보관 및 전송이 가능해집니다.

복호화란?

복호화는 암호화된 파일을 원래의 형태로 복구하는 과정을 말합니다. 복호화는 암호화된 파일과 같은 알고리즘을 사용하여 키를 입력하고, 이를 통해 원래의 파일을 복원합니다.

파일 암호화와 복호화 방법

Python에서는 cryptography라이브러리를 사용하여 파일의 암호화와 복호화를 수행할 수 있습니다. 아래의 예제 코드를 통해 파일을 암호화하고 복호화하는 방법을 알아보겠습니다.

# Required Libraries
from cryptography.fernet import Fernet

# 암호화 키 생성
def generate_key():
    key = Fernet.generate_key()
    with open('encryption_key.key', 'wb') as key_file:
        key_file.write(key)

# 파일 암호화
def encrypt_file(file_path):
    with open('encryption_key.key', 'rb') as key_file:
        key = key_file.read()
    fernet = Fernet(key)
    with open(file_path, 'rb') as file:
        original_data = file.read()
    encrypted_data = fernet.encrypt(original_data)
    with open('encrypted_file.bin', 'wb') as encrypted_file:
        encrypted_file.write(encrypted_data)

# 파일 복호화
def decrypt_file(file_path):
    with open('encryption_key.key', 'rb') as key_file:
        key = key_file.read()
    fernet = Fernet(key)
    with open(file_path, 'rb') as encrypted_file:
        encrypted_data = encrypted_file.read()
    decrypted_data = fernet.decrypt(encrypted_data)
    with open('decrypted_file.txt', 'wb') as decrypted_file:
        decrypted_file.write(decrypted_data)

# Main Function
if __name__ == '__main__':
    generate_key()
    encrypt_file('original_file.txt')
    decrypt_file('encrypted_file.bin')

위의 예제 코드는 cryptography 라이브러리를 사용하여 파일을 암호화하고 복호화하는 과정을 보여줍니다. 먼저, generate_key 함수를 사용하여 암호화키를 생성하고 encryption_key.key 파일로 저장합니다.

파일을 암호화하려면, encrypt_file 함수를 호출하여 암호화된 파일인 encrypted_file.bin을 생성합니다. 이때 original_file.txt 파일의 내용이 암호화되어 저장됩니다.

파일을 복호화하려면, decrypt_file 함수를 호출하여 encrypted_file.bin을 복호화하여 decrypted_file.txt 파일로 저장합니다.

이와 같은 방식으로 Python을 사용하여 파일을 암호화하고 복호화할 수 있습니다. 이러한 암호화 기술을 사용하여 중요한 파일을 안전하게 보호할 수 있습니다.

암호화와 복호화를 사용하여 파일을 보호하면 개인정보와 중요한 데이터의 보안이 향상되며, 민감한 정보가 유출되는 것을 방지할 수 있습니다. Python을 활용하여 파일을 암호화하고 복호화하는 방법에 대해서 알아봤는데요. 보다 안전한 파일 관리를 위해 해당 기술을 사용해보시기 바랍니다.