![]() |
BruteForce-Algorythmus schreiben
Ich beiße mir schon seit Tagen die Zähne daran aus, wie ich ein ganz simples BruteForce hinbekomme. Das Problem ist, dass ich nicht weiß, wie ich das am Besten mit den verschachtelten Schleifen machen soll.
Ganz wichtig: Ich möchte den erstmal mit ganz einfachen Mitteln machen ohne auf Schnelligkeit und Effizienz zu achten.
Delphi-Quellcode:
Ich weiß auch nicht, warum ich da so ein Brett vor dem Kopf hab, obwohl mein beschriebenes Problem im Kommentar doch so simpel ist. Vielleicht könnt ihr mir ja helfen, dieses Brett wegzukriegen. :wall:
const
Char = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzß0123456789äüö'; var Stellen, Von, Bis: Integer; begin For Stellen := Von to Bis do begin //An dieser Stelle muss ich ihm sagen, dass er bei der 1. Stelle anfangen soll, immer den nächsten Buchstaben von Char nehmen soll und danach zur nächsten Stelle gehen soll, bis Stelle "Stellen" erreicht ist. end; end; |
Re: BruteForce-Algorythmus schreiben
Jemand hat hier im Forum mal eine OpenSource BruteForce-Komponente veröffentlicht. Schau dir doch da mal den Code von an.
|
Re: BruteForce-Algorythmus schreiben
Du suchst einen
![]() Das lässt sich nur mit Rekursion lösen. Dazu gab es vor kurzem einen Thread im ![]() Bei Fragen, kannst du dich vertrauensvoll an uns wenden. :thumb: |
Re: BruteForce-Algorythmus schreiben
Danke erstmal!
Die BruteForrce-Komponente habe ich schon gesehen. Nur läuft leider bei mir nich auf Vista mit D7 PE. Mir flattern beim Installieren rund 200 Fehlermeldungen im Source entgegen. À la Befehl "Region" ist unbekannt, etc. Rekursion hab ich schonmal gehört und schonmal was gemacht. Ist aber lange her. :D Ich guck mir mal die Links an. |
Re: BruteForce-Algorythmus schreiben
Dann werfe die Regions raus. Das hat im Code keinerlei Bedeutung. Ist nur für Code-Folding.
|
Re: BruteForce-Algorythmus schreiben
Zitat:
|
Re: BruteForce-Algorythmus schreiben
Schau mal genauer nach: Backtracking, Trial & Error ;)
ist ganz einfach im Grunde =) |
Re: BruteForce-Algorythmus schreiben
Stell dir vor, dein Zeichenvorrat wäre '0123456789'.
Und du sollst jetzt einen String von '0' bis '9999' hochzählen. Naja, was muss man tun ? Erst mal die Stelle s[1] bis '9' hochzählen, dann gibt es einen Überlauf. Beim Überlauf geht s[1] auf auf Anfang (also '0'). Dann hängst du eine '0' an den String an und zählst weiter: '00', '10', '20', ... '90' Jetz kommt wieder der Überlauf, aber diesmal ist s[2] schon vorhanden: '01', '11', 21', ..... Und jetzt mach mal einen Gedankensprung un verallgemeinere diesen Algorithmus auf den Zeichenvorrat: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvw xyzß0123456789äüö' |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:12 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz