Public Access
39 lines
1.5 KiB
Python
39 lines
1.5 KiB
Python
import os
|
|
import bcrypt
|
|
from cryptography.fernet import Fernet
|
|
from modules.logger import log_event
|
|
|
|
def generer_cle_secrete():
|
|
cle = Fernet.generate_key()
|
|
print("\n" + "="*60)
|
|
print("⚠️ CLÉ DE CRYPTAGE GÉNÉRÉE (À CONSERVER PRÉCIEUSEMENT) ⚠️")
|
|
print(f"AETHAS_ENCRYPTION_KEY={cle.decode('utf-8')}")
|
|
print("Copiez cette ligne dans votre fichier .env")
|
|
print("="*60 + "\n")
|
|
return cle
|
|
|
|
def obtenir_fernet():
|
|
cle = os.getenv("AETHAS_ENCRYPTION_KEY")
|
|
if not cle:
|
|
log_event("CRITICAL", "AUTH", "Clé de cryptage manquante !")
|
|
raise Exception("AETHAS_ENCRYPTION_KEY introuvable dans l'environnement.")
|
|
return Fernet(cle.encode('utf-8'))
|
|
|
|
def crypter_donnee(donnee_claire):
|
|
return obtenir_fernet().encrypt(donnee_claire.encode('utf-8')).decode('utf-8')
|
|
|
|
def decrypter_donnee(donnee_cryptee):
|
|
return obtenir_fernet().decrypt(donnee_cryptee.encode('utf-8')).decode('utf-8')
|
|
|
|
def hasher_mot_de_passe(mot_de_passe):
|
|
return bcrypt.hashpw(mot_de_passe.encode('utf-8'), bcrypt.gensalt()).decode('utf-8')
|
|
|
|
def verifier_mot_de_passe(mot_de_passe_clair, hash_enregistre):
|
|
return bcrypt.checkpw(mot_de_passe_clair.encode('utf-8'), hash_enregistre.encode('utf-8'))
|
|
|
|
# CORRECTION : Le hash est généré mathématiquement au chargement pour garantir que Xavier2026! fonctionne
|
|
IDENTIFIANTS_ADMIN = {
|
|
"email": "admin@mail.aethas38.duckdns.org",
|
|
"mot_de_passe_hash": hasher_mot_de_passe("Xavier2026!"),
|
|
"role": "Dieu tout puissant"
|
|
} |