Gerar Senhas Aleatórias em Delphi
Fiz essa função para uma necessidade minha de gerar senha a usuários.
Ela gera aleatoriamente senhas com números e letras, só numeros, só minusculas ou maiúsculas e minúsculas, dependendo da parametrização que você mandar pra ela. Bom proveito.
function GeraSenha(QtdCaracteres: Byte; SoNumeros: Boolean = False; MaisculasEMinusculas: Boolean = True): String;
//Gera uma senha aleatória com letras e numeros ou só numeros
const
Letras: array[0..25] of string = ('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z');
var
ParteNumerica, i, MaiMin: Byte;
ParteCaracter: string;
ContaMais1: Boolean;
begin
Result:= '';
Randomize;
ContaMais1:= False;
for I := 1 to QtdCaracteres do
begin
if not ContaMais1 then
begin
ParteNumerica:= Random(9);
Result:= Result+ IntToStr(ParteNumerica);
if not SoNumeros then
begin
ParteCaracter:= Letras[Random(26)];
if MaisculasEMinusculas then
begin
MaiMin:= Random(2);
case MaiMin of
0: Result:= Result+ LowerCase(ParteCaracter);
1: Result:= Result+ UpperCase(ParteCaracter);
end;
end
else
Result:= Result+ LowerCase(ParteCaracter);
ContaMais1:= True; //incrementa contador de caracteres pois no mesmo loop gerou um numero e uma letra
end;
end
else
ContaMais1:= False;
end;
end;
Ela gera aleatoriamente senhas com números e letras, só numeros, só minusculas ou maiúsculas e minúsculas, dependendo da parametrização que você mandar pra ela. Bom proveito.
function GeraSenha(QtdCaracteres: Byte; SoNumeros: Boolean = False; MaisculasEMinusculas: Boolean = True): String;
//Gera uma senha aleatória com letras e numeros ou só numeros
const
Letras: array[0..25] of string = ('A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z');
var
ParteNumerica, i, MaiMin: Byte;
ParteCaracter: string;
ContaMais1: Boolean;
begin
Result:= '';
Randomize;
ContaMais1:= False;
for I := 1 to QtdCaracteres do
begin
if not ContaMais1 then
begin
ParteNumerica:= Random(9);
Result:= Result+ IntToStr(ParteNumerica);
if not SoNumeros then
begin
ParteCaracter:= Letras[Random(26)];
if MaisculasEMinusculas then
begin
MaiMin:= Random(2);
case MaiMin of
0: Result:= Result+ LowerCase(ParteCaracter);
1: Result:= Result+ UpperCase(ParteCaracter);
end;
end
else
Result:= Result+ LowerCase(ParteCaracter);
ContaMais1:= True; //incrementa contador de caracteres pois no mesmo loop gerou um numero e uma letra
end;
end
else
ContaMais1:= False;
end;
end;
Comentários
Postar um comentário