64 lines
No EOL
2.3 KiB
Text
64 lines
No EOL
2.3 KiB
Text
"""
|
|
TEE OFF ADMIN GENERATOR v1.9 (DEBUG & BULLETPROOF)
|
|
---------------------------------------------------------------------------
|
|
FUNKSJON: Genererer SQL-kommando for administrator.
|
|
STATUS: Beholder TRUNCATE for feilsøking, men sikrer SQL-innsendingen.
|
|
---------------------------------------------------------------------------
|
|
"""
|
|
import pyotp
|
|
from passlib.hash import pbkdf2_sha256
|
|
import getpass
|
|
import sys
|
|
|
|
def generate_admin():
|
|
print("\n" + "="*50)
|
|
print(" TEE OFF ADMIN GENERATOR v1.9 (DEBUG MODE)")
|
|
print("="*50)
|
|
|
|
username = input("Brukernavn (f.eks Envide Webutvikling): ").strip()
|
|
email = input("E-post: ").strip()
|
|
|
|
# Sikre mot SQL-feil hvis navnet/eposten inneholder apostrof
|
|
safe_username = username.replace("'", "''")
|
|
safe_email = email.replace("'", "''")
|
|
|
|
# Passord-verifisering
|
|
while True:
|
|
password = getpass.getpass("Skriv inn passord: ")
|
|
password_confirm = getpass.getpass("Gjenta passord: ")
|
|
|
|
if password == password_confirm:
|
|
if len(password) < 8:
|
|
print("⚠️ Advarsel: Passordet bør være minst 8 tegn.")
|
|
print(f"\n[DEBUG] Passord akseptert. Lengde: {len(password)} tegn.")
|
|
break
|
|
else:
|
|
print("❌ Passordene er ikke like. Prøv igjen.\n")
|
|
|
|
otp_secret = pyotp.random_base32()
|
|
|
|
print("⏳ Genererer PBKDF2-hash...")
|
|
password_hash = pbkdf2_sha256.hash(password)
|
|
print(f"[DEBUG] Hash generert. Lengde: {len(password_hash)} tegn.")
|
|
|
|
print("\n✅ GENERERING VELLYKKET!")
|
|
print("-" * 50)
|
|
print("SLIK LEGGER DU INN BRUKEREN TRYGT:")
|
|
print("-" * 50)
|
|
print("1. Gå inn i databasen:")
|
|
print(" docker exec -it teeoff_db psql -U teeoff_admin -d teeoff")
|
|
print("\n2. Lim inn disse to linjene nøyaktig slik de står:")
|
|
print("TRUNCATE admins;")
|
|
print(f"INSERT INTO admins (username, email, password_hash, otp_secret) VALUES ('{safe_username}', '{safe_email}', '{password_hash}', '{otp_secret}');")
|
|
print("\n3. Skriv 'exit' for å gå ut.")
|
|
print("-" * 50)
|
|
print("4. KONFIGURER 2FA I GOOGLE AUTHENTICATOR:")
|
|
print(f"Bruk denne nøkkelen: {otp_secret}")
|
|
print("-" * 50 + "\n")
|
|
|
|
if __name__ == "__main__":
|
|
try:
|
|
generate_admin()
|
|
except KeyboardInterrupt:
|
|
print("\nAvbrutt.")
|
|
sys.exit(0) |