Aller au contenu
Règlement du forum ×

cortex09

Membres
  • Compteur de contenus

    1
  • Inscription

  • Dernière visite

Tout ce qui a été posté par cortex09

  1. voici l'algo c'est écrit en Python : import hashlib import re UPPER = "ACDFGHJMNPRSTUWXY" LOWER = "abcdfghjkmpstuwxy" DIGIT = "2345679" SYMBOL = "!@$&%" def _mod(v: int, m: int) -> int: return v % m def mac_to_pass(mac: str) -> str: """Generate Fiberhome HG6145F1 (Algeria) admin password from MAC address""" if not re.fullmatch(r"([0-9A-Fa-f]{2}:){5}[0-9A-Fa-f]{2}", mac): return "Invalid MAC format (expected XX:XX:XX:XX:XX:XX)" md5 = hashlib.md5() md5.update(mac.encode()) md5.update(b"AEJLY") digest = md5.hexdigest() vals = [] for c in digest[:20]: if "0" <= c <= "9": vals.append(ord(c) - ord("0")) elif "a" <= c <= "f": vals.append(ord(c) - ord("a") + 10) elif "A" <= c <= "F": vals.append(ord(c) - ord("A") + 10) else: vals.append(0) password = [""] * 16 for i in range(16): v = vals[i] sel = _mod(v, 4) if sel == 0: password[i] = UPPER[(v * 2) % 17] elif sel == 1: password[i] = LOWER[(v * 2 + 1) % 17] elif sel == 2: password[i] = DIGIT[6 - (v % 7)] else: password[i] = SYMBOL[4 - (v % 5)] positions = [ _mod(vals[16] + 1, 16), _mod(vals[17] + 1, 16), _mod(vals[18] + 1, 16), _mod(vals[19] + 1, 16), ] used = set() for i, p in enumerate(positions): while p in used: p = _mod(p + 1, 16) used.add(p) positions[i] = p password[positions[0]] = UPPER[(vals[16] * 2) % 17] password[positions[1]] = LOWER[(vals[17] * 2 + 1) % 17] password[positions[2]] = DIGIT[6 - (vals[18] % 7)] password[positions[3]] = SYMBOL[4 - (vals[19] % 5)] return "".join(password) if __name__ == "__main__": mac = input("Enter MAC address (XX:XX:XX:XX:XX:XX): ").strip() password = mac_to_pass(mac) print("Generated password:", password)
×
×
  • Créer...