unit Unit1;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Classes,
Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.CheckLst;
type
TForm1 = class(TForm)
EditTamanho: TEdit;
ButtonGerar: TButton;
LabelResultado: TLabel;
Label1: TLabel;
CheckMaiusculas: TCheckBox;
CheckMinusculas: TCheckBox;
CheckNumeros: TCheckBox;
CheckSimbolos: TCheckBox;
procedure ButtonGerarClick(Sender: TObject);
private
function GerarSenha(Tamanho: Integer): string;
public
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
function TForm1.GerarSenha(Tamanho: Integer): string;
var
Caracteres: string;
i: Integer;
begin
Caracteres := '';
if CheckMaiusculas.Checked then
Caracteres := Caracteres + 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
if CheckMinusculas.Checked then
Caracteres := Caracteres + 'abcdefghijklmnopqrstuvwxyz';
if CheckNumeros.Checked then
Caracteres := Caracteres + '0123456789';
if CheckSimbolos.Checked then
Caracteres := Caracteres + '!@#$%^&*()_+-=';
if Caracteres = '' then
begin
Result := '';
Exit;
end;
Randomize;
Result := '';
for i := 1 to Tamanho do
Result := Result + Caracteres[Random(Length(Caracteres)) + 1];
end;
procedure TForm1.ButtonGerarClick(Sender: TObject);
var
Tamanho: Integer;
begin
if not TryStrToInt(EditTamanho.Text, Tamanho) or (Tamanho <= 0) then
begin
ShowMessage('Digite um tamanho válido para a senha!');
Exit;
end;
if GerarSenha(Tamanho) = '' then
begin
ShowMessage('Selecione pelo menos uma categoria de caracteres!');
Exit;
end;
LabelResultado.Caption := 'Senha gerada: ' + GerarSenha(Tamanho);
end;
end.
Como montar o formulário
EditTamanho → para digitar o tamanho da senha
CheckMaiusculas → Letras maiúsculas
CheckMinusculas → Letras minúsculas
CheckNumeros → Números
CheckSimbolos → Símbolos
ButtonGerar → texto: Gerar Senha
LabelResultado → para mostrar a senha gerada
Como funciona
O usuário define o tamanho da senha.
Marca as categorias que deseja incluir: maiúsculas, minúsculas, números, símbolos.
Clica Gerar Senha.
O programa monta a senha aleatória com base nas opções selecionadas.
Mostra a senha no LabelResultado.
Gerador de Senhas Personalizado em Delphi
-
AlexNuckem
- Mensagens: 1
- Registado: segunda mar 03, 2025 1:06 am