[python] PyYAML을 이용하여 YAML 파일의 데이터를 암호화하기
암호화는 보안의 필수 요소 중 하나입니다. 데이터를 암호화하여 외부로부터의 무단 접근을 방지할 수 있습니다. 이번 블로그 포스트에서는 Python의 PyYAML을 사용하여 YAML 파일의 데이터를 암호화하는 방법을 알아보겠습니다.
PyYAML 설치하기
먼저, PyYAML을 설치해야 합니다. 다음 명령어를 사용하여 PyYAML을 설치할 수 있습니다.
pip install pyyaml
YAML 파일에 데이터 추가하기
암호화할 데이터를 YAML 파일에 추가해야 합니다. 다음은 암호화할 데이터가 포함된 YAML 파일의 예시입니다.
password: mysecretpassword
데이터 암호화하기
이제 PyYAML을 사용하여 데이터를 암호화하는 방법을 알아보겠습니다.
import yaml
import base64
from cryptography.fernet import Fernet
# 암호화할 데이터를 로드합니다.
with open('data.yml', 'r') as file:
data = yaml.safe_load(file)
# 암호화 키를 생성합니다.
key = Fernet.generate_key()
cipher_suite = Fernet(key)
# 데이터를 암호화합니다.
encrypted_data = {}
for key, value in data.items():
encrypted_data[key] = cipher_suite.encrypt(bytes(value, 'utf-8')).decode('utf-8')
# 암호화된 데이터를 YAML 파일에 저장합니다.
with open('encrypted_data.yml', 'w') as file:
yaml.safe_dump(encrypted_data, file)
위의 코드는 PyYAML을 사용하여 데이터를 암호화하는 간단한 예시입니다. 암호화된 데이터는 encrypted_data.yml
파일에 저장됩니다. 암호화 키는 매번 실행할 때마다 새로 생성되므로, 필요에 따라 키를 저장하여 나중에 데이터를 복호화할 수 있습니다.
데이터 복호화하기
암호화된 데이터를 복호화하는 방법도 간단합니다. 아래의 코드를 사용하여 암호화된 데이터를 복호화할 수 있습니다.
# 암호화된 데이터를 로드합니다.
with open('encrypted_data.yml', 'r') as file:
encrypted_data = yaml.safe_load(file)
# 데이터를 복호화합니다.
decrypted_data = {}
for key, value in encrypted_data.items():
decrypted_data[key] = cipher_suite.decrypt(bytes(value, 'utf-8')).decode('utf-8')
# 복호화된 데이터를 출력합니다.
print(decrypted_data)
위의 코드는 암호화된 데이터를 복호화하여 출력하는 예시입니다. 데이터를 복호화하기 위해서는 암호화할 때 사용한 암호화 키가 필요합니다.
마무리
PyYAML과 암호화 알고리즘을 함께 사용하여 YAML 파일의 데이터를 안전하게 암호화하고 복호화하는 방법에 대해 알아보았습니다. 데이터의 보안이 중요한 경우에는 이런 암호화 기술을 적용하여 안전한 데이터 관리를 할 수 있습니다.