29 lines
1.0 KiB
Python
29 lines
1.0 KiB
Python
|
from cryptography.fernet import Fernet
|
|||
|
|
|||
|
|
|||
|
PATH_TO_FILE_CRYPT = "./secret.key"
|
|||
|
|
|||
|
|
|||
|
# Функция для генерации ключа шифрования и записи его в файл
|
|||
|
def generate_key_to_file():
|
|||
|
key = Fernet.generate_key()
|
|||
|
with open(PATH_TO_FILE_CRYPT, 'wb') as key_file:
|
|||
|
key_file.write(key)
|
|||
|
|
|||
|
# Функция для чтения ключа из файла
|
|||
|
def load_key_from_file() -> bytes:
|
|||
|
with open(PATH_TO_FILE_CRYPT, 'rb') as key_file:
|
|||
|
return key_file.read()
|
|||
|
|
|||
|
# Функция для шифрования пароля
|
|||
|
def encrypt_password(password: str) -> str:
|
|||
|
fernet = Fernet(load_key_from_file())
|
|||
|
encrypted_password = fernet.encrypt(password.encode())
|
|||
|
return encrypted_password.decode()
|
|||
|
|
|||
|
# Функция для расшифрования пароля
|
|||
|
def decrypt_password(encrypted_password: str) -> str:
|
|||
|
fernet = Fernet(load_key_from_file())
|
|||
|
decrypted_password = fernet.decrypt(encrypted_password.encode())
|
|||
|
return decrypted_password.decode()
|