Home » Tipps & Tricks » Object Pascal » Strings » Zufallspasswort generieren
Zufallspasswort generieren
Folgende Funktion genertiert ein Zufallspasswort. Als Parameter erwartet die Funktion eine Zahl, die die Länge des Passworts ausgibt:
function RandomPassword(PLen:Integer):String; var str:String; begin Randomize; //string with all possible chars str:='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; Result:=''; repeat Result:=Result+str[Random(Length(str))+1]; until(Length(Result)=PLen) end; procedure TForm1.Button1Click(Sender: TObject); begin //generate a password with 10 chars Label1.Caption:=RandomPassword(10); end;
Diese Function generiert ein Passwort mit festgelegter Länge
type TPasswordMode = set of (pmUpper, pmLower, pmNumbers, pmExtra); function GeneratePassword(ALength: Integer; Mode: TPasswordMode):string; const cLower = 'abcdefghijklmnopqrstuvwxyz'; cUpper = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; cNumbers = '0123456789'; cExtra = '°!"§$&/()=-+*?ß}{][@.,;:_~'; var i : Integer; S : string; iM: BYTE; begin // Kein mode angegeben, dann raus... if Mode = [] then Exit; i := 0; Randomize; while (i < ALength) do begin iM := RANDOM(4); case iM of // Kleinbuchstaben 0: if (pmLower in Mode) then begin S := S + cLower[1+RANDOM(Length(cLower))]; Inc(i); end; // Grossbuchstaben 1: if (pmUpper in Mode) then begin S := S + cUpper[1+RANDOM(Length(cUpper))]; Inc(i); end; // Nummern 2: if (pmNumbers in Mode) then begin S := S + cNumbers[1+RANDOM(Length(cNumbers))]; Inc(i); end; // Sonderzeichen 3: if (pmExtra in Mode) then begin S := S + cExtra[1+RANDOM(Length(cExtra))]; Inc(i); end; end; end; // Generiertes Passwort zurueckgeben Result := S; end;
Aufruf zum Beispiel so:
// 12 Stelliges Passwort mit Klein und Grossbuchstaben sowie Zahlen // generieren. Edit1.Text := GeneratePassword(12, [pmUpper, pmLower, pmNumbers]);