[python] 디렉토리 암호화와 파이썬

목차

  1. 요구사항
  2. 방법
    • 디렉토리 암호화하기
    • 파일 복호화하기
  3. 결과
  4. 참고 자료

1. 요구사항

암호화를 위해 cryptography 모듈을 사용할 것입니다. 먼저 이 모듈을 설치해야 합니다.

pip install cryptography

또한, osshutil 모듈도 사용할 것이므로 이들도 import 해야 합니다.

2. 방법

디렉토리 암호화하기

아래는 디렉토리의 파일을 암호화하는 코드입니다.

from cryptography.fernet import Fernet
import os
import shutil

# 키 생성
key = Fernet.generate_key()

# 키를 파일로 저장
with open('key.key', 'wb') as key_file:
    key_file.write(key)

# 암호화된 파일을 저장할 디렉토리 생성
encrypted_dir = 'encrypted'
os.makedirs(encrypted_dir, exist_ok=True)

# 모든 파일 암호화
for filename in os.listdir('.'):
    if os.path.isfile(filename):
        with open(filename, 'rb') as file:
            data = file.read()
        f = Fernet(key)
        encrypted_data = f.encrypt(data)
        with open(os.path.join(encrypted_dir, filename), 'wb') as file:
            file.write(encrypted_data)

# 원본 디렉토리 및 파일 삭제
shutil.rmtree('original')

파일 복호화하기

아래는 암호화된 파일을 복호화하는 코드입니다.

# 키 파일에서 키 로드
with open('key.key', 'rb') as key_file:
    key = key_file.read()

# 폴더 생성
decrypted_dir = 'decrypted'
os.makedirs(decrypted_dir, exist_ok=True)

# 모든 파일 복호화
for filename in os.listdir('encrypted'):
    with open(os.path.join('encrypted', filename), 'rb') as file:
        data = file.read()
    f = Fernet(key)
    decrypted_data = f.decrypt(data)
    with open(os.path.join(decrypted_dir, filename), 'wb') as file:
        file.write(decrypted_data)

3. 결과

위의 코드를 사용하면 디렉토리의 파일을 암호화 및 복호화할 수 있습니다.

4. 참고 자료