Seite 1 von 1

Ganz simple "Bruteforce"

Verfasst: Freitag 26. September 2014, 22:13
von M4rcde
Hallo Profis,

für ein Projekt indem ich alle Möglichkeiten von Wörtern und Zeichen brauche, brauche ich ein Bruteforce. Da ich damit nicht Passwörter mit extremen Algos odersoetwas knacken möchte und mein Wissen in Python über Bruteforce begrenzt ist, wollte ich mal fragen wie ich folgendes machen kann:
ich habe praktisch eine Freigabe für Buchstaben und Zeichen (A-Z, a-z, 0-9, Sonderzeichen) welche strukturiert (nix da random) durchkombiniert werden sollen. Nach jeder Kombination soll das Wort von einer bereits geschriebenen Funktion verarbeitet werden.

Ich habe nun schon das abstrakteste im Internet gefunden aber nichts simples. Da ich dieses Abstrakte auch nicht wirklich verstehe, kann ich es auch kaum einsetzen. Außerdem möchte ich eh selbst lieber meine eigene Software schreiben :)

Das ganze soll mit einer Stelle pro "Wort" anfangen und theoretisch bis ins unendliche an Stellen weitermachen.

Wo fang ich da am Besten an?

Marc

Re: Ganz simple "Bruteforce"

Verfasst: Freitag 26. September 2014, 22:31
von BlackJack
@M4rcde: Ich würde sagen Du fängst am besten mit `itertools.product()` an.

Re: Ganz simple "Bruteforce"

Verfasst: Freitag 26. September 2014, 22:45
von M4rcde
BlackJack hat geschrieben:@M4rcde: Ich würde sagen Du fängst am besten mit `itertools.product()` an.
WOW! Danke! itertools war das perfekte Stichwort! Danke

Re: Ganz simple "Bruteforce"

Verfasst: Freitag 26. September 2014, 23:24
von M4rcde
Aaah ich brauch doch nochmal hilfe! jetzt wirds aber komplizierter :D

Code: Alles auswählen

for product in (itertools.product(characters, repeat=i) for i in itertools.count(0)):
    for each_tuple in product:
        #print(each_tuple)
        pw = ''.join(str(i) for i in each_tuple)
Das ist mein aktueller Code. Funktioniert auch einwandfrei! Nur was mach ich wenn ich nicht jedesmal wieder bei A anfangen möchte sondern schon bei "dashfSdsfj"?
Also das Wort zwischenspeichern und wieder abrufen bekomm ich hin, aber wie sage ich das praktisch diesem "intertools"? geht das überhaupt?


Liebe Grüße Marc

PS: Moderatoren, ich habe meine alte Antwort nicht editiert, dass nocheinmal alle mitbekommen, dass es doch einen weiteren Wechsel des Themas gegeben hat.

Re: Ganz simple "Bruteforce"

Verfasst: Freitag 26. September 2014, 23:39
von BlackJack
@M4rcde: An den inneren Zustand von so einem `product()`-Iterator kommt man leider nicht heran. Da müsste man sich das selber programmieren. Ist aber auch nicht besonders schwer.