PHP BruteForce

Seth93

Well-known member
ID: 322821
L
24 November 2008
1.400
82
Hallo,

wie erstelle ich eine Liste mit allen Möglichkeiten mit einer Längenvorgabe?
Das sollte wie beim Bruteforcen sein.
Ich habe ein Alphabet und jeden einzelnen Buchstabe anzeigen, krieg ich über eine Schleife hin.
Aber wie löse ich das elegant, dass man die Länge, also 2, 3, ... Buchstaben, festlegen kann?
Brauche auch keinen Code, es reicht, wenn logische Ansätze da sind, denn ich hab gar keine richtige Idee.
 
Durch die Definition eines eigenen Iterators:

für 5 Buchstaben sieht es so aus:
Code:
OOOOX
Es wird immer das X inkrementiert, die Os bleiben. Erreicht das X das Ende seines definierten Alphabets inkrementierst du das letzte O und beginnst erneut bei dem ersten Zeichen aus deinem Alphabet für X :
Code:
OOOBX
Wenn nun X wieder das Ende erreicht, wird wieder B inkrementiert und bi X von neuem begonnen. Sollte irgendwann B das Ende des Alphabets erreichen, beginnt dieses wieder von vorne und das dritte O von vorne wird inkrementiert.

Das ganze ist im Prinzip eine Addition um 1 in jedem Schritt und einem Übertrag wenn eines der Platzierungen das Ende des Alphabets erreicht. Stelle es dir einfach wie die Zahlen von 0-9 mit dem Startwert "0000", dem Ende "9999" und einem Inkrementierschritt um "1" vor. Nur dass du keine Zahlen sondern Zeichen eines selbst definierten Alphabets hast.
 
Meinst du sowas?

PHP:
<?php

// AAA bis ZZZ
$limit = 3;

for($i = 'A'; strlen($i) != $limit; $i++) {
        print $i."\n";
}
 
Verblüffenderweise funktioniert das sogar 8O
Code:
[FONT=Lucida Console]C:\Users\theHacker>php -r "$a = 'Z'; $a++; echo $a;"
AA[/FONT]
 
ist kein Feature sondern fest implementierte Logik. - so auch kein BUG
Da ein ASCII Zeichen nichts anderes als einen hexadezimalen Wert repräsentiert (andere Darstellung), wo der Wertebereich fest definiert ist...
 
Im Prinzip meine ich das, aber da bist du an das iso8859-1 Alphabet gebunden. Deshalb empfahl ich es selbst zu implementieren.