1
0
Fork 0
AutoPercenty2/credentials.py

51 lines
1.6 KiB
Python

from cryptography.fernet import Fernet
import os
import logging
# 로거 인스턴스 가져오기
logger = logging.getLogger('default_logger')
# 암호화 키 생성 또는 불러오기
def load_or_create_key():
key_file = 'secret.key'
if os.path.exists(key_file):
with open(key_file, 'rb') as file:
key = file.read()
else:
key = Fernet.generate_key()
with open(key_file, 'wb') as file:
file.write(key)
return key
# 사용자 정보 암호화
def encrypt_data(data):
key = load_or_create_key()
fernet = Fernet(key)
encrypted_data = fernet.encrypt(data.encode())
return encrypted_data
# 사용자 정보 복호화
def decrypt_data(encrypted_data):
key = load_or_create_key()
fernet = Fernet(key)
decrypted_data = fernet.decrypt(encrypted_data).decode()
return decrypted_data
# 사용자 정보 저장
def save_credentials(username, password, employeeID):
encrypted_username = encrypt_data(username)
encrypted_password = encrypt_data(password)
encrypted_employeeID = encrypt_data(employeeID)
with open('credentials.txt', 'wb') as file:
file.write(encrypted_username + b'\n' + encrypted_password + b'\n' + encrypted_employeeID)
# 저장된 사용자 정보 불러오기
def load_credentials():
if os.path.exists('credentials.txt'):
with open ('credentials.txt', 'rb') as file:
encrypted_username, encrypted_password, encrypted_employeeID= file.read().splitlines()
return decrypt_data(encrypted_username), decrypt_data(encrypted_password), decrypt_data(encrypted_employeeID)
return None, None, None