AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Bruteforce Algorithmus

Ein Thema von Luckie · begonnen am 9. Nov 2010 · letzter Beitrag vom 9. Nov 2010
 
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#1

Bruteforce Algorithmus

  Alt 9. Nov 2010, 02:17
Ich habe folgenden Bruteforce Algorithmus:
Delphi-Quellcode:
function BruteForceLengthIndex(Len: integer; const Chars: string): Int64;
var
  Factor : Int64;
begin
  Result := 0;
  Factor := 1;
  while Len > 0 do
  begin
    dec(Len);
    Result := Result + Factor;
    Factor := Factor * Length(Chars);
  end;
end;

function BruteForce(Nb: Int64; Chars: string): string;
begin
  Result := '';
  while Nb > Length(Chars) do
  begin
    dec(Nb);
    Result := Chars[Nb mod Length(Chars) + 1] + Result;
    Nb := Nb div Length(Chars);
  end;
  if Nb > 0 then
    Result := Chars[Nb] + Result;
end;

procedure TForm1.Button1Click(Sender: TObject);
const
  CHARS = 'abcdefghijklmnopqrstuvwxyz';
var
  MaxChars: Int64;
  s: string;
begin
  MaxChars := BruteForceLengthIndex(3, CHARS);
  while (length(s) <= 3) do
  begin
    s := BruteForce(MaxChars, CHARS);
    Caption := s;
    if s = 'zzzzthen
      exit;
    Inc(MaxChars);
  end;
end;
Dazu hab eich folgende Fragen:
1. Was macht BruteForceLengthIndex und wozu wird diese Funktion benötigt?
2. Wenn ich drei angebe, bildet er trotzdem alle Kombinationen mit vier Stellen durch. Was stimmt da nicht?
3. Er findet die Kombination "zzzz" nicht (aber "zzz"), obwohl er trotz der Länge von drei auch alle Kombinationen mit vier Stellen durchprobiert.
Muss mich wohl korrigieren. Er zeigt nur "aaaa" an, wenn er alle Kombinationen durch hat.

Ich bräuchte einen Algorithmus bei dem ich die minimale Anzahl Stellen und die maximale Anzahl Stellen angebe. Also wenn min=3 und max=5 ist, soll er bei "aaa" anfangen und bei "zzzzz" enden.

Ich nehme alles zurück und behaupte das Gegenteil. Bleibt nur Frage eins.

Und noch was, wie kann ich da eine Fortschrittsanzeige mitlaufen lassen?
Michael
Ein Teil meines Codes würde euch verunsichern.

Geändert von Luckie ( 9. Nov 2010 um 02:31 Uhr)
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:58 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