AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Code-Bibliothek Library: Algorithmen Delphi Ein Zufallspasswort generieren

Ein Zufallspasswort generieren

Ein Thema von Daniel B · begonnen am 20. Jul 2003 · letzter Beitrag vom 20. Jul 2003
Antwort Antwort
Daniel B
(Gast)

n/a Beiträge
 
#1

Ein Zufallspasswort generieren

  Alt 20. Jul 2003, 12:58
Hallo,

hiermit kann man ein Passwort erzeugen lassen. Die Länge kann man einstellen, und auch ob Sonderzeichen verwendet werden sollen.
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  Randomize;
end;

function RandPW(iPWLen: Integer; bSpecial: Boolean): String;
var
  sPW: string;
begin
  sPW := 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
  if bSpecial then
  begin
    sPW := sPW + '1234567890!"§$%&/()=?~+,.-{}[]²³\|*';
  end;
  Result := '';
  repeat
    Result := Result + sPW[Random(Length(sPW)) + 1];
  until
    (Length(Result) = iPWLen);
end;
Aufrufen hiermit:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  ShowMessage(RandPW(5, True)); //5 ist die Länge des Passwortes und das True ob auch Sonderzeichen verwendet werden sollen
end;
Grüsse, Daniel
  Mit Zitat antworten Zitat
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#2

Re: Ein Zufallspasswort generieren

  Alt 20. Jul 2003, 13:57
Die Anwendung solcher Passwörter ist sicherlich besser als das eigene Geburtsdatum oder den Namen der Freundin zu verwenden, aber man sollte zur obigen Methode bemerken das sie nicht sehr viel sicherer ist.

Der Zufallsgenerator von Delphi arbeitet als LCG = Linear Congruental Generator. Diese LCG's sind sehr gut erforscht und nicht kryptograpisch sicher. D.h. man kann aus einer durch den LCG erzeugten Sequenz von Bytes den Startwert des LCG's berechnen.

Borlands LCG hat im besten Falle eine Periode von 2^32. D.h. man kann nur 2^32 verschiedene Sequenzen erzeugen und somit auch nur 2^32 verschiedenen ~2 Zeichen Passwörter.

Damit würde obiger Code eine ideale Basis für eine Tabellenorientierte Brute Force Attacke darstellen, ohne das man eine Tabelle vorrausberechnen müsste.

Erzeugt man durchschnittlich 24 Zeichen Passwörter dann würde dies die Anzahl der möglichen Passwörter reduzieren auf 2^25.
Heutige Annahmen gehen davon aus das ein 128 Bit Schlüssel bestehend aus echten Zufall sicher ist (2^128 mögliche Schlüssel), und keine akzeptablen Brute Force Attacken durchführbar machen.

Wenn man also mit obigen Algorithmus 128 Bit Passwörter erzeugen würde dann würde aus allen 2^128 möglichen Passwörtern nur 2^32 verschiedene gewählt. Der Algo. wäre somit nut 1 / 2^92 so stark wie echte 128 Bit Passwörter. Daher könnte man von vorhinen nur mit 32Bit Passwörtern, eg. ~6 zeichen lang, benutzen.

Eine Brute Force Attacke mit einem Set von 2^32 möglichen Passwörtern ist absolut durchführbar.

Gruß Hagen

PS: Die Zeichencodierung spielt dabei weniger ein Rolle. In meiner Analyse ging ich vom MIME Base 64 Zeichensatz aus.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 06:53 Uhr.
Powered by vBulletin® Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2019 by Daniel R. Wolf