Veröffentlicht 19. Januar 200322 j Hi, ich wollte mir mal einen Brute Force Alghorithmik selber programmieren, ich bin jetzt so weit das ich eine zahl eingebe "123" und mein Programm von 0 bis 123 alles durchprobiert und dann sagt das die Zahl gefunden wurde! Das klappt soweit doch wenn ich jetzt noch Buchstaben hinzufügen will habe ich meine Probleme: Wie kann ich in meine while schleife buchstaben mit einbauen? Ich denke es ist das beste wenn ich das eingegebene Passwort z.B."test123" in Strings aufteile t,e,s,t,1,2,3, und diese einzelnt vergleiche!? aber wie kann ich denn jetzt die buchstaben einbauen, so dass meine schleife von a-z0-9 alles durchprobiert? Danke greez Whitescar P.S.: Wenn man irgendwas nicht verstehen kann bitte nachfragen hatte so meine Probleme mit der Formulierung
19. Januar 200322 j Man könnte alle unerlaubten Zahlenkombinationen durch Bereichsprüfung ausgrenzen (also 0x20 erlauben wir von mir aus und dann wird immer nachgeschaut, ob die Zahl zwischen 0x30 & 0x3a, 0x41 bis 0x5a und 0x61 bis 0x7a liegt). Das würde allerdings ständig viele Kontrollabfragen benötigen und den Code unnötig in die Länge ziehen. Bau Dir also lieber ein Array auf, welches die erlaubten Buchstaben enthält und lies diese jeweils aus. So entfallen die Abfragen und die Tabelle kann man x-beliebig erweitern, ändern und austauschen. Ein Vorteil ist es auch, daß man dann nicht unbedingt an die chronologische Reihenfolge der Buchstaben gebunden ist und man die Tabelle auch zufällig mischen könnte um eine bessere Durchschnittslaufzeit bis zum Finden vom gesuchten Wort zu erreichen.
19. Januar 200322 j ok danke das hat mich schon sehr viel weiter gebracht ich versuchs mal mit arrays
7. April 200322 j Kommt natürlich drauf an, was Du für eine Programmiersprache verwendest und welche Möglichkeiten diese unterstützt. Unter Visual Basic würde ich mit Strings arbeiten und mit Hilfe von LEFT, RIGHT, MID die einzelnen Zeichen durchgehen (vorher die Länge des Strings ermitteln und dann eine Schleife bauen, die Zeichen für Zeichen durchgeht. Die Ermittlung der Werte geschieht dann über den ASCII-Wert des Zeichens (Hierfür wären dann auch noch innere Schleifen notwendig und zwar je eine für die Zahlenwerte sowie für die Buchstabenwerte).
8. April 200322 j Einen Bruteforcealgorithmus in Visual Basic ist so effizient wie Braunkohleabbau mit nem Teelöffel. Ausserdem: nicht die Strings vergleichen (die sind langsam), sondern die Speicherbereiche (memcmp etc.)... Wenn schon Bruteforce würd ich das in Assembler machen. Gruß
8. April 200322 j Hallo, Brute Force Algorithmen sind grundsätzlich ineffizient, egal welche Sprache verwendet wird. Ein Wechsel der Sprache bringt praktisch nichts, man sollte den Aufwand besser in einen geeigneten Algorithmus stecken - sofern das möglich ist. Hast Du mal ein praktisches Beispiel dafür, dass memcmp grundsätzlich schneller ist? Bei einer guten Implementierung gibt es keinen Unterschied, da beide Funktionen auf identischem Code aufbauen. Nic
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.