File size: 1,335 Bytes
43ecebd
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
"""

Encryption Manager

"""

import time
from cryptography.fernet import Fernet
... import base64
... import os
... 
... class EncryptionManager:
...     def __init__(self):
...         self.key = None
...         self.cipher = None
...     
...     def initialize(self):
...         """Initialize encryption manager"""
...         print("Initializing Encryption Manager...")
...         
...         # Generate or load encryption key
...         key_file = 'config/encryption.key'
...         if os.path.exists(key_file):
...             with open(key_file, 'rb') as f:
...                 self.key = f.read()
...         else:
...             self.key = Fernet.generate_key()
...             os.makedirs(os.path.dirname(key_file), exist_ok=True)
...             with open(key_file, 'wb') as f:
...                 f.write(self.key)
...         
...         self.cipher = Fernet(self.key)
...         print("Encryption Manager initialized successfully")
...     
...     def encrypt(self, data):
...         """Encrypt data"""
...         if isinstance(data, str):
...             data = data.encode()
...         return self.cipher.encrypt(data)
...     
...     def decrypt(self, encrypted_data):
...         """Decrypt data"""
...         return self.cipher.decrypt(encrypted_data).decode()