Public Access
feat: Préparation au déploiement Docker, sécurisation du README et ajout du module de facturation
This commit is contained in:
1 parent
317ecddc56
commit
37ee5c6234
5 files changed
+163
-12
No files matched your search
@@ -0,0 +1,47 @@
|
||||
import os
|
||||
import bcrypt
|
||||
from cryptography.fernet import Fernet
|
||||
from modules.logger import log_event
|
||||
|
||||
# 1. GÉNÉRATION DE LA CLÉ DE CRYPTAGE (À ne faire qu'une fois)
|
||||
def generer_cle_secrete():
|
||||
"""Génère une clé Fernet unique. À sauvegarder dans le .env"""
|
||||
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'))
|
||||
|
||||
# 2. CRYPTAGE DES DONNÉES SENSIBLES (Clés API des utilisateurs, CB, etc.)
|
||||
def crypter_donnee(donnee_claire):
|
||||
f = obtenir_fernet()
|
||||
return f.encrypt(donnee_claire.encode('utf-8')).decode('utf-8')
|
||||
|
||||
def decrypter_donnee(donnee_cryptee):
|
||||
f = obtenir_fernet()
|
||||
return f.decrypt(donnee_cryptee.encode('utf-8')).decode('utf-8')
|
||||
|
||||
# 3. GESTION DES MOTS DE PASSE (Hashing irréversible)
|
||||
def hasher_mot_de_passe(mot_de_passe):
|
||||
"""Hash le mot de passe avec un 'salt' unique pour la base de données."""
|
||||
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'))
|
||||
|
||||
# --- CRÉATION DE VOTRE COMPTE ADMINISTRATEUR PAR DÉFAUT ---
|
||||
IDENTIFIANTS_ADMIN = {
|
||||
"email": "admin@mail.aethas38.duckdns.org",
|
||||
# Mot de passe par défaut : Xavier2026! (Il est hashé ici pour la sécurité du code)
|
||||
"mot_de_passe_hash": "$2b$12$R.K19pS8M5/xVd2o.3nSZeZ8GzH6J9gR/vY9x6g3Zp2vJq4vX2J0e",
|
||||
"role": "Dieu tout puissant"
|
||||
}
|
||||
Reference in new issue
Block a user