[python] Fabric으로 파일 암호화하기

파일을 암호화하는 것은 보안과 프라이버시를 유지하는 데 중요한 역할을 합니다. 이번 블로그 포스트에서는 Python의 Fabric 라이브러리를 사용하여 파일을 암호화하는 방법에 대해 알아보겠습니다.

Fabric이란?

Fabric은 파이썬으로 작성된 라이브러리로, SSH를 통해 원격 호스트에서 명령을 실행하고 파일을 전송하는 도구입니다. 파일 암호화에 사용하기 위해 Fabric을 사용할 것입니다.

필요한 라이브러리 설치

먼저 Fabric을 설치해야 합니다. 다음 명령을 사용하여 필요한 라이브러리를 설치할 수 있습니다.

pip install fabric

파일 암호화 함수 작성

다음은 파일을 암호화하는 함수를 작성하는 예시입니다.

from cryptography.fernet import Fernet
import fabric

def encrypt_file(filename, key):
    # 파일 읽기
    with open(filename, 'rb') as file:
        file_data = file.read()

    # Fernet 키 생성
    f = Fernet(key)

    # 파일 데이터를 암호화
    encrypted_data = f.encrypt(file_data)

    # 암호화된 데이터를 파일로 저장
    with open(filename + '.encrypted', 'wb') as encrypted_file:
        encrypted_file.write(encrypted_data)

    print(f'{filename} 파일이 암호화되었습니다.')

@fabric.task
def encrypt():
    # 암호화할 파일 경로 설정
    file_path = '/path/to/file.txt'

    # 암호화에 사용할 키 생성
    key = Fernet.generate_key()

    # 파일 암호화
    encrypt_file(file_path, key)

    # 키 파일 생성
    with open('key.key', 'wb') as key_file:
        key_file.write(key)

    print(f'암호화된 파일 및 키가 생성되었습니다.')

파일 암호화 실행

암호화할 파일의 경로를 수정한 후, 다음 명령을 실행하여 파일을 암호화할 수 있습니다.

fab encrypt

암호화된 파일이 생성되고, 해당 파일과 함께 사용된 키가 key.key 파일로 저장됩니다.

결론

Fabric을 사용하여 파일을 암호화하는 방법에 대해 알아보았습니다. 이를 통해 보다 안전하게 파일을 보호하고, 민감한 정보의 유출을 방지할 수 있습니다. 추가적인 보안 강화가 필요한 경우, 키를 안전하게 관리하는 방법을 고려해야 합니다.

참고 자료