U trendu

Delphi – Rutina za kreiranje password-a

Predstavićemo vam rutinu za generisanje slučajne lozinke. Lozinka (password) će vam sigurno zatrebati u vašim aplikacijama, i to najviše u merama zaštite (recimo zaštite softverskog proizvoda). Funkcija za generisanje lozinke kreira password iz izvornog stringa (strIzvor) u koji možete dodati bilo koji karakter i koji može biti različite dužine. Bitno je samo da dužinu generisane lozinke ne odredimo da bude veća od samog izvornog stringa. Ovo je zbog toga što petlju za generisanje, zasnivamo na dužini izvornog stringa (a može biti i drugačije urađeno).

U novom projektu, na formu postavite jedno komandno dugme i jedno „Edit“ polje. A zatim u događaj „Click“ postavite poziv funkcije za generisanje (GenerisiPwd) koja će rezultat smestiti u „Edit“ polje (Edit1).


procedure TForm1.Button1Click(Sender: TObject);
var
Password: string;
begin
//generisanje lozinke duzine 5 karaktera
Password := GenerisiPwd(5);
Edit1.text:=Password;
end;

A evo i same funkcije za generisanje lozinke, koja će kreirati slučajni string, veličine koju ste odredili u pozivu.


function GenerisiPwd(PWLen:integer):string;
// string koji se koristi kao izvor
const
strIzvor: string=’ABCDEFGHIJKL’+
‘MNOPRSTUVWXY0123456789’;
var
N,K,X,Y:integer;
begin
// provera maksimuma za password
if (PWlen > Length(strIzvor)) then
K := Length(strIzvor)-1
else K := PWLen;
SetLength(result, K);
// setovanje duzine rezultata
Y := Length(strIzvor);
// duzina petlje
N := 0;
// pocetna vrednost
while N < K do
begin
X := Random(Y) + 1;
// sledeci slucajni chr

// provera prisutnosti u rezultatu
if (pos(strIzvor[X], result) = 0) then
begin
inc(N);
// nije pronadjen
Result[N] := strIzvor[X];
// smestanje karaktera
end;
end;
end;


Na kraju ne zaboravite da na početku pozovete proceduru „Randomize“ (poziv upućujemo samo jednom), koja je ugrađena procedura za generisanje slučajnih brojeva, a rad zasniva na sistemskom clock-u.


procedure TForm1.FormCreate(Sender: TObject);
begin
Randomize;
end;

Pratite Krstaricu i preko mobilne aplikacije za Android i iPhone.