Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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

wenn dieser text nicht den board regeln entspricht dann bitte löschen ;) danke

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.

ok danke das hat mich schon sehr viel weiter gebracht ich versuchs mal mit arrays

  • 2 Monate später...

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

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ß

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.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.