Essa é uma dica simples e que para os que trabalham com redes sem fio pode ser muito útil. O que a função faz é gerar um string com caracteres hexadecimais, mas que podem ser adaptados para qualquer outro tipo
Esta função recebe como parâmetros o cumprimento
da senha como um integer, e outros três parâmetros do tipo boolean que
indicam se estarão presentes letras minúsculas, maiúsculas
e números. Aqui vai o código e as explicações seguem
logo abaixo.
function GeraSenhaHex(Digitos: Integer; Min: Boolean; Mai: Boolean; Num: Boolean): string;
const
MinC = 'abcdef';
MaiC = 'ABCDEF';
NumC = '1234567890';
var
p, q : Integer;
Char, Senha: String;
begin
Char := '';
If Min then Char := Char + MinC;
If Mai then Char := Char + MaiC;
If Num then Char := Char + NumC;
for p := 1 to Digitos do
begin
Randomize;
q := Random(Length(Char)) + 1;
Senha := Senha + Char[q];
end;
Result := Senha;
end;
Explicações:
Primeiro criamos as constantes que trarão os caracteres referentes
a letras
minúsculas, maiúsculas, e números, depois, iniciamos como
vazia, só por desencargo de consciência já que o delphi faz
isso por padrão, a variável "Char", que conterá todos
os caracteres a serem usados para a geração da senha randômica.
Após isso, testamos os parâmetros para letras maiúsculas,
minúsculas e números, acrescentando à "Char" cada
um dos que forem verdadeiros segundo os parâmetros passados na chamada
da função.
E depois, para finalizar, um laço com o número de repetições
igual aos dígitos passados também como parâmetro na chamada,
que usando a função Random do delphi gera números aleatórios
dentro do limite estabelecido pelo cumprimento da variável "Char",
lembrando que o fato de acrescentar o "+ 1" é por que as posições
dos caracteres dentro de um string iniciam em 1, e a função Random
gera números de 0 até o valor estipulado como limite. Por exemplo
uma String = 'teste' temos os valores a seguir:
String[1] = 't'
String[2] = 'e'
String[3] = 's'
String[4] = 't'
String[5] = 'e'
Um exemplo de uso:
ShowMessage( GeraSenhaHex(8, False, True, True) );
//Senhas com 8 Caracteres e Letras Maiúsculas e Números
Terminado! Simples, fácil e bem útil.
Espero ter ajudado.
Por: João Paulo Novais
Contato: novaisjp@uol.com.br
|