파이썬에서 파일을 복호화하는 방법
파이썬에서 파일을 복호화하는 방법.
파이썬에서 파일을 복호화하는 방법에 대한 자세한 단계별 튜토리얼을 제공합니다:
단계 1: 필요한 라이브러리 가져오기
먼저, 파일 처리와 암호화에 필요한 라이브러리를 가져와야 합니다. 이 튜토리얼에서는 암호화와 복호화를 위해 cryptography 라이브러리를 사용할 것입니다.
from cryptography.fernet import Fernet
단계 2: 암호화 키 생성 또는 검색
파일을 복호화하기 위해서는 해당 파일을 암호화할 때 사용된 암호화 키가 필요합니다. 암호화 키가 이미 있는 경우, 이 단계를 건너뛰세요. 그렇지 않으면 다음 코드를 사용하여 새로운 암호화 키를 생성할 수 있습니다:
def generate_key():
key = Fernet.generate_key()
with open("encryption_key.key", "wb") as key_file:
key_file.write(key)
이 코드는 새로운 암호화 키를 생성하고, 이를 바이너리 형식으로 encryption_key.key라는 파일에 저장합니다.
단계 3: 암호화된 파일 읽기
이제 복호화하려는 암호화된 파일을 읽어야 합니다. 파일이 지정된 위치에 존재하는지 확인하세요.
def read_file(filename):
with open(filename, "rb") as file:
encrypted_data = file.read()
return encrypted_data
이 코드는 암호화된 파일의 내용을 읽고, 이를 바이너리 데이터로 반환합니다.
단계 4: 파일 복호화하기
이제 암호화 키와 암호화된 데이터를 사용하여 파일을 복호화할 수 있습니다.
def decrypt_file(key, encrypted_data):
fernet = Fernet(key)
decrypted_data = fernet.decrypt(encrypted_data)
return decrypted_data
이 코드는 암호화 키로 Fernet 클래스를 초기화하고, decrypt 메서드를 사용하여 암호화된 데이터를 복호화합니다.
단계 5: 복호화된 데이터 저장하기
마지막으로, 복호화된 데이터를 새 파일에 저장할 수 있습니다.
def save_decrypted_data(decrypted_data, output_filename):
with open(output_filename, "wb") as file:
file.write(decrypted_data)
이 코드는 복호화된 데이터를 output_filename으로 지정된 새 파일에 작성합니다.
완전한 예제
다음은 모든 단계를 포함한 완전한 예제입니다:
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 read_file(filename):
with open(filename, "rb") as file:
encrypted_data = file.read()
return encrypted_data
def decrypt_file(key, encrypted_data):
fernet = Fernet(key)
decrypted_data = fernet.decrypt(encrypted_data)
return decrypted_data
def save_decrypted_data(decrypted_data, output_filename):
with open(output_filename, "wb") as file:
file.write(decrypted_data)
# 암호화 키 생성 또는 검색
generate_key()
# 암호화된 파일 읽기
encrypted_data = read_file("encrypted_file.txt")
# 파일 복호화
with open("encryption_key.key", "rb") as key_file:
key = key_file.read()
decrypted_data = decrypt_file(key, encrypted_data)
# 복호화된 데이터 저장
save_decrypted_data(decrypted_data, "decrypted_file.txt")
"encrypted_file.txt"를 실제 암호화된 파일의 경로로, "decrypted_file.txt"를 원하는 출력 파일 이름으로 대체해야 합니다.
이제 제공된 암호화 키를 사용하여 복호화된 파일이 생성되었습니다.