-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcrypt_data.py
More file actions
45 lines (36 loc) · 1.61 KB
/
crypt_data.py
File metadata and controls
45 lines (36 loc) · 1.61 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
from cryptography.fernet import Fernet
try:
from config import config
except ImportError:
from test_config import test_config
config = test_config
class Crypt:
"""
Класс для шифрования и дешифрования данных с использованием Fernet.
"""
@staticmethod
def decrypt_data(data: str) -> str:
"""
Дешифрует зашифрованные данные.
Этот метод принимает зашифрованные данные в виде строки и возвращает
их в расшифрованном виде.
Параметры:
data (str): Зашифрованные данные в виде строки.
Возвращает:
str: Расшифрованные данные в виде строки.
"""
fernet = Fernet(config['db']['key'])
return fernet.decrypt(data.encode()).decode()
@staticmethod
async def encrypt_data(*args: str) -> tuple:
"""
Шифрует данные.
Этот метод принимает произвольное количество аргументов и возвращает
их в зашифрованном виде в виде кортежа.
Параметры:
*args (str): Данные для шифрования.
Возвращает:
tuple: Кортеж зашифрованных данных.
"""
fernet = Fernet(config['db']['key'])
return tuple(fernet.encrypt(str(arg).encode()).decode() for arg in args)