Files
aethas-free/modules/auth_manager.py
T
xavier 71d6f51ee0
Build and Push Docker Image / build-and-push (push) Successful in 34s
feat: Authentification sécurisée fonctionnelle et correction du hash bcrypt
2026-08-20 21:59:30 +02:00

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"
}