Verweis: | |
Uses: | SysUtils |
Eingabe: | Mindestlänge(integer),Erste_Groß(boolean) |
Ausgabe: | Passwort(String) |
Funktion: | Passwort-Vorschläge mit Längenangabe und Uppercase für den ersten Buchstaben. |
Wer einmal eine Funktion braucht, die Ihm ein halbwegs aussprechbares Passwort per Zufall bereitstellt, der ist mit dieser Funktion Prima aufgehoben.
function Sprechbares_Passwort(Mindest_Laenge: integer;
Erste_gros: boolean): string;
const
//Am Anfang nur die
Mitlauteanf: array [1..30] of string =
('b', 'br', 'bl', 'd', 'dr', 'fl', 'fr', 'gl', 'gr', 'h', 'j',
'k', 'kl', 'kr', 'l', 'm',
'n', 'p', 'pr', 'pl', 'r',
's', 'sch', 'schl', 'schr',
'schn', 't', 'tr', 'w', 'z');
Mitlaute: array [1..43] of string =
('b', 'br', 'bl', 'd', 'dr', 'fl', 'fr', 'gl', 'gr', 'h',
'k', 'kl', 'kr', 'l', 'm',
'n', 'p', 'pr', 'pl', 'r',
's', 'sch', 'schl', 'schr',
'schn', 't', 'tr', 'w', 'z', 'bb', 'ch', 'll', 'mm', 'nt', 'nd',
'nn', 'ns', 'nz', 'pp', 'rr', 'rt', 'ss',
'tt');
Selbstlaute: array [1..10] of string =
('a', 'ai', 'au', 'e', 'ei', 'eu', 'i', 'ie', 'o', 'u');
var
Pass: string;
Mit, Mita, selb: string;
begin
Pass := '';
randomize;
repeat
//Weise die Zufalls-Wortfetzen zu.
mita := Mitlauteanf[Random(high(Mitlauteanf)) + 1];
mit := Mitlaute[Random(high(Mitlaute)) + 1];
selb := Selbstlaute[Random(high(Selbstlaute)) + 1];
//Nimm nur ausgewählte Selbstlaute
if pass = '' then
pass := Concat(Pass + mita + selb)
else
pass := Concat(Pass + mit + selb);
until Length(Pass) >= Mindest_Laenge;
//Erste Buchstabe groß
if Erste_Gros then
Result := AnsiUpperCase(Copy(Pass, 1, 1)) + AnsiLowercase(
Copy(Pass, 2, Length(Pass)))
else
Result := Pass;
end;
Vorbereitung: Erstellen sie eine IDE Anwendung und ziehen Sie einen TButton und ein TMemo auf die Form. Doppelklicken sie auf den Button und ersetzen Sie das Ereignis durch folgenden Quelltext:
procedure TForm1.Button1Click(Sender: TObject);
begin
memo1.Lines.add(Sprechbares_Passwort(8,True));
end;
Der Aufruf dieser Funktion mit einem Memofeld bei einem Button-Klick-Ereignis.