dicas show delphi

DICAS

Visite a biblioteca de dicas da comunidade.

Saiba mais
sombra
Artigos Show Delphi

ARTIGOS

Abordagens detalhadas sobre assuntos diversos.

Saiba mais
sombra
iniciantes show delphi

INICIANTES

Aprenda a programar de um modo simples e fácil.

Saiba mais
sombra
downloads show delphi

DOWNLOADS

Acesse os materiais exclusivos aos membros.

Saiba mais
sombra
voltar

PARA QUEM GOSTA DE DELPHI

Função para gerar uma senha aleatória.

Veja como gerar uma chave aleatória ideal para senhas.
Está função é bem interessante para a recuperação de senhas de usuários.

Ela é bem completa, oferecendo várias possibilidades de formação de
uma senha.

Se uso é extremamente simples e de fácil entendimento.

Abaixo segue o código fonte da função:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
function GetRandomPassword(Size: Integer; Tipo : Integer = 1): String;
var
  I: Integer;
  Chave: String;
const
  str1 = '1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
  str2 = '1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ';
  str3 = '1234567890abcdefghijklmnopqrstuvwxyz';
  str4 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
  str5 = '1234567890';
  str6 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
  str7 = 'abcdefghijklmnopqrstuvwxyz';
begin
  Chave := '';
 
  for I := 1 to Size do
  begin
    case Tipo of
      1 : Chave := Chave + str1[Random(Length(str1)) + 1];
      2 : Chave := Chave + str2[Random(Length(str2)) + 1];
      3 : Chave := Chave + str3[Random(Length(str3)) + 1];
      4 : Chave := Chave + str4[Random(Length(str4)) + 1];
      5 : Chave := Chave + str5[Random(Length(str5)) + 1];
      6 : Chave := Chave + str6[Random(Length(str6)) + 1];
      7 : Chave := Chave + str7[Random(Length(str7)) + 1];
    end;
  end;
 
  Result := Chave;
end;

Exemplo de uso:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
procedure TForm1.Button1Click(Sender: TObject);
begin
  // Senha padrão de 10 caracteres - letras e números
  ShowMessage(GetRandomPassword(10));
 
  // Senha com números e letras maiúsculas
  ShowMessage(GetRandomPassword(20, 2));
 
  // Senha com números e letras minúsculas
  ShowMessage(GetRandomPassword(15, 3));
 
  // Senha com letras maiúsculas e minúsculas
  ShowMessage(GetRandomPassword(8, 4));
 
  // Senha com somente números
  ShowMessage(GetRandomPassword(12, 5));
 
  // Senha com somente letras minúsculas
  ShowMessage(GetRandomPassword(6, 6));
 
  // Senha com somente letras minúsculas
  ShowMessage(GetRandomPassword(30, 7));
end;
  • InfusTec
  • 2 comentários
  • 2 de abril de 2015

2 respostas para “Função para gerar uma senha aleatória.”

  1. baraozemo disse:

    //Extended version of SpeakAblePassWord routine
    //modified by Marcelo Castro
    //
    //syntax: GeneratePass(number_of_syllables,decimal_part)

    function GeneratePass(syllables, numbers: Byte): string;

    function Replicate(Caracter: string; Quant: Integer): string;
    var
    I: Integer;
    begin
    Result := ”;
    for I := 1 to Quant do
    Result := Result + Caracter;
    end;
    const
    conso: array [0..19] of Char = (‘b’, ‘c’, ‘d’, ‘f’, ‘g’, ‘h’, ‘j’,
    ‘k’, ‘l’, ‘m’, ‘n’, ‘p’, ‘r’, ‘s’, ‘t’, ‘v’, ‘w’, ‘x’, ‘y’, ‘z’);
    vocal: array [0..4] of Char = (‘a’, ‘e’, ‘i’, ‘o’, ‘u’);
    var
    i: Integer;
    si, sf: Longint;
    n: string;
    begin
    Result := ”;
    Randomize;

    if syllables 0 then
    for i := 1 to syllables do
    begin
    Result := Result + conso[Random(19)];
    Result := Result + vocal[Random(4)];
    end;

    if numbers = 1 then Result := Result + IntToStr(Random(9))
    else if numbers >= 2 then
    begin
    if numbers > 9 then numbers := 9;
    si := StrToInt(‘1’ + Replicate(‘0’, numbers – 1));
    sf := StrToInt(Replicate(‘9’, numbers));
    n := FloatToStr(si + Random(sf));
    Result := Result + Copy(n, 0,numbers);
    end;
    end;

    {———————————————–
    utilization:
    ============
    ex: GeneratePass(3,2) => ‘pavoco53’

    ex: GeneratePass(3,4) => ‘yegise7955’

    ex: GeneratePass(5,0) => ‘yagotoxa’

    ex: GeneratePass(0,9) => ‘568597284’
    ————————————————}

Deixe um comentário

Ir ao topo

© 2024 Infus Soluções em Tecnologia - Todos os Direitos Reservados