forked from ckh08045/AutoPercenty
51 lines
1.6 KiB
Python
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
|