Spaces:
Building
Building
Create encription_utils.py
Browse files- encription_utils.py +29 -0
encription_utils.py
ADDED
@@ -0,0 +1,29 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
"""
|
2 |
+
Flare – Fernet şifreleme yardımcıları
|
3 |
+
"""
|
4 |
+
|
5 |
+
import base64, os
|
6 |
+
from cryptography.fernet import Fernet, InvalidToken
|
7 |
+
|
8 |
+
_ENV_KEY = "FLARE_TOKEN_KEY"
|
9 |
+
|
10 |
+
def _get_key() -> Fernet:
|
11 |
+
key = os.getenv(_ENV_KEY)
|
12 |
+
if not key:
|
13 |
+
raise RuntimeError(f"{_ENV_KEY} environment variable not set")
|
14 |
+
return Fernet(key.encode())
|
15 |
+
|
16 |
+
def encrypt(plain: str) -> str:
|
17 |
+
f = _get_key()
|
18 |
+
token = f.encrypt(plain.encode()).decode()
|
19 |
+
return f"enc:{token}"
|
20 |
+
|
21 |
+
def decrypt(enc_value: str) -> str:
|
22 |
+
if not enc_value.startswith("enc:"):
|
23 |
+
return enc_value # düz metin
|
24 |
+
token = enc_value.split("enc:", 1)[1]
|
25 |
+
f = _get_key()
|
26 |
+
try:
|
27 |
+
return f.decrypt(token.encode()).decode()
|
28 |
+
except InvalidToken:
|
29 |
+
raise RuntimeError("Invalid encryption key or token")
|