Zufallspasswort generieren |
|
| System | Win9x, WinNT, Win2000, WinXP, Vista, Win7 |
|---|---|
| Ab Delphi-Version | Delphi 1 |
| Letzte Änderung | 28.09.2010 |
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;
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]);
Ähnliche Seiten:
- Text im StringGrid ausrichten
- StringGrid Text vertikal ausgeben
- Datei in einen String laden
- Strings in einem Bitmap ausgeben
- Zufallsfarbe generieren
- String in der Tag-Eigenschaft speichern
- Wort aus einem String an einer Position extrahieren
- String hinter Cursorposition einfügen
- Hinzufügen von Einträgen in Listen beschleunigen
- Prüfen, ob ein Eintrag in TStrings schon vorhanden ist