DICAS

Visite a biblioteca de dicas da comunidade.

Saiba mais

ARTIGOS

Abordagens detalhadas sobre assuntos diversos.

Saiba mais

INICIANTES

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

Saiba mais

DOWNLOADS

Acesse os materiais exclusivos aos membros.

Saiba mais
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;
Facebook Comments Box
  • InfusTec
  • 12.255 views
  • 2 comentários
  • 2 de abril de 2015

Está gostando do conteúdo? Considere pagar um cafezinho para nossa equipe!

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