2026. június 15., hétfő

Brute force jelszó kereső

Ez a Python program, egy megadott karakterkészletből kiindulva, brute force módszerrel (minden lehetséges kombinációt kipróbálva) megkeresi a jelszót.A hatékonyság érdekében a beépített itertools.product függvényt használtam, amely generátorként működik, így nem használ sok memóriát.
--------------
import string
import time
from itertools import product


def brute_force_password(target_password, max_length=5):
    # Karakterkészlet: kisbetűk, nagybetűk és számok
    # Szükség esetén kiegészíthető írásjelekkel is: + string.punctuation
    chars = string.ascii_letters + string.digits

    attempts = 0
    start_time = time.time()

    print(f"Keresés indítása a következő karakterekkel: {chars}\n")

    # Próbálkozás különböző jelszóhosszúságokkal a megadott maximumig
    for length in range(1, max_length + 1):
        print(f"Próbálkozás {length} karakter hosszúságú kombinációkkal...")

        # Generálja az összes lehetséges kombinációt az adott hosszon
        for combination in product(chars, repeat=length):
            attempts += 1
            # Összeilleszti a karaktereket egy szöveggé
            guess = "".join(combination)

            # Ellenőrzés, hogy egyezik-e a céllal
            if guess == target_password:
                end_time = time.time()
                duration = end_time - start_time
                return {
                    "found": True,
                    "password": guess,
                    "attempts": attempts,
                    "time": round(duration, 4),
                }

    return {"found": False, "attempts": attempts, "time": round(time.time() - start_time, 4)}


# --- Program futtatása ---
if __name__ == "__main__":
    # Adj meg egy teszt jelszót (figyelem: a brute force hosszú jelszavaknál nagyon lassú!)
    # Példák: "a", "Ab3", "pass"
    secret_password = "Ab3"

    # Maximális hossz, ameddig a program keresni fog
    maximum_search_length = 5

    result = brute_force_password(secret_password, maximum_search_length)

    if result["found"]:
        print("\n" + "=" * 40)
        print("SIKER! A jelszó megvan.")
        print(f"Megtalált jelszó: {result['password']}")
        print(f"Próbálkozások száma: {result['attempts']}")
        print(f"Eltelt idő: {result['time']} másodperc")
        print("=" * 40)
    else:
        print("\n" + "=" * 40)
        print("Sikertelen keresés.")
        print(f"A jelszó nem található {maximum_search_length} karakteres hosszig.")
        print(f"Összes próbálkozás: {result['attempts']}")
        print("=" * 40)
----------------

Nincsenek megjegyzések:

Megjegyzés küldése