[python] 디렉토리 암호화와 파이썬
목차
- 요구사항
- 방법
- 디렉토리 암호화하기
- 파일 복호화하기
- 결과
- 참고 자료
1. 요구사항
암호화를 위해 cryptography
모듈을 사용할 것입니다. 먼저 이 모듈을 설치해야 합니다.
pip install cryptography
또한, os
와 shutil
모듈도 사용할 것이므로 이들도 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. 결과
위의 코드를 사용하면 디렉토리의 파일을 암호화 및 복호화할 수 있습니다.