Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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 :)

Geschrieben

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.

  • 2 Monate später...
Geschrieben

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).

Geschrieben

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ß

Geschrieben

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 Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...