- 파이썬으로 파일 암호화 및 복호화 애플리케이션 개발하기

파이썬은 간단하고 강력한 프로그래밍 언어로, 파일 암호화와 복호화 기능을 구현하는 데 이상적입니다. 이번 블로그 포스트에서는 파이썬을 사용하여 파일을 암호화하고 복호화하는 간단한 애플리케이션을 개발하는 방법을 알아보겠습니다.

필요한 라이브러리 설치하기

파일 암호화 및 복호화를 위해 ‘cryptography’라는 라이브러리를 사용할 것입니다. 다음 명령을 사용하여 라이브러리를 설치합니다.

pip install cryptography

파일 암호화하기

먼저, 암호화할 파일과 암호화에 사용할 키를 입력 받는 간단한 함수를 만듭니다.

from cryptography.fernet import Fernet

def encrypt_file(file_path, key):
    with open(file_path, 'rb') as file:
        data = file.read()

    f = Fernet(key)
    encrypted_data = f.encrypt(data)

    with open(file_path, 'wb') as file:
        file.write(encrypted_data)

위 코드에서는 ‘file_path’로 전달된 파일을 읽어와서 ‘data’ 변수에 저장합니다. 그런 다음 ‘Fernet’ 객체를 생성하고 해당 키를 사용하여 데이터를 암호화합니다. 마지막으로, 암호화된 데이터를 원본 파일에 다시 씁니다.

파일 복호화하기

파일을 복호화하는 함수도 만들어 보겠습니다.

def decrypt_file(file_path, key):
    with open(file_path, 'rb') as file:
        encrypted_data = file.read()

    f = Fernet(key)
    decrypted_data = f.decrypt(encrypted_data)

    with open(file_path, 'wb') as file:
        file.write(decrypted_data)

위 코드에서는 암호화된 파일을 읽어와서 ‘encrypted_data’ 변수에 저장합니다. 그런 다음 ‘Fernet’ 객체를 생성하고 해당 키를 사용하여 데이터를 복호화합니다. 마지막으로, 복호화된 데이터를 원본 파일에 다시 씁니다.

애플리케이션 사용하기

이제 파일을 암호화 및 복호화하는 간단한 애플리케이션을 사용해 보겠습니다.

def main():
    file_path = input("암호화 또는 복호화할 파일 경로를 입력하세요: ")
    key = input("암호화할 키를 입력하세요: ")

    encrypt_or_decrypt = input("암호화(E) 또는 복호화(D)를 선택하세요: ")

    if encrypt_or_decrypt.upper() == "E":
        encrypt_file(file_path, key)
        print("파일이 성공적으로 암호화되었습니다.")
    elif encrypt_or_decrypt.upper() == "D":
        decrypt_file(file_path, key)
        print("파일이 성공적으로 복호화되었습니다.")
    else:
        print("잘못된 선택입니다.")

if __name__ == "__main__":
    main()

위 코드는 사용자에게 파일 경로와 키, 암호화 또는 복호화를 선택하게 해주는 간단한 인터페이스를 제공합니다. 사용자 입력에 따라 암호화 또는 복호화 함수가 호출되고, 처리 결과가 출력됩니다.

이제 파이썬으로 파일 암호화 및 복호화 애플리케이션을 개발하는 방법을 알아보았습니다. 이 코드를 통해 민감한 정보를 안전하게 보호할 수 있습니다. 그러나 실제로 사용하기 전에 충분히 테스트하고, 민감한 정보를 다루는 경우에는 보안을 강화하기 위해 적절한 추가 조치를 취하는 것이 중요합니다.

#파이썬 #암호화 #복호화