
Índice
Introdução
Se você está aprendendo Delphi e quer desenvolver um projeto prático e útil, criar um gerador de senhas aleatórias pode ser uma excelente escolha. Este artigo irá guiá-lo passo a passo na criação de um Gerador de Senhas Aleatórias em Delphi com critérios definidos pelo usuário, como comprimento e tipos de caracteres. Vamos explorar a estrutura do código e as melhores práticas de programação para garantir que seu projeto seja eficaz e bem organizado.
Gerador de Senhas Aleatórias em Delphi
Geradores de senhas são ferramentas essenciais para garantir a segurança online. Eles criam senhas complexas que são difíceis de adivinhar, ajudando a proteger contas e dados pessoais. Neste projeto, o usuário poderá definir o comprimento da senha e escolher entre diferentes tipos de caracteres, como letras maiúsculas, minúsculas, números e símbolos.
Estrutura do Projeto
Vamos começar definindo a estrutura básica do nosso projeto Delphi. Criaremos uma interface simples onde o usuário poderá selecionar os critérios para a geração de senhas e um botão para gerar a senha com base nesses critérios.
Passo 1: Configurando o Projeto
- Criar um Novo Projeto:
Abra o Delphi e crie um novo projeto VCL Forms Application. - Adicionar Componentes:
Adicione os seguintes componentes ao formulário:- TEdit: Para que o usuário possa definir o comprimento da senha.
- TCheckBox: Quatro checkboxes para selecionar tipos de caracteres (maiúsculas, minúsculas, números, símbolos).
- TButton: Um botão para gerar a senha.
- TLabel: Para exibir a senha gerada.
Passo 2: Definindo o Layout
Organize os componentes no formulário para criar uma interface amigável. O layout deve permitir que o usuário insira o comprimento da senha, selecione os tipos de caracteres e veja a senha gerada.
unit Unit1; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls; type TForm1 = class(TForm) EditLength: TEdit; CheckBoxUpperCase: TCheckBox; CheckBoxLowerCase: TCheckBox; CheckBoxNumbers: TCheckBox; CheckBoxSymbols: TCheckBox; ButtonGenerate: TButton; LabelResult: TLabel; procedure ButtonGenerateClick(Sender: TObject); private { Private declarations } function GeneratePassword(aLength: Integer; aUseUpperCase, aUseLowerCase, aUseNumbers, aUseSymbols: Boolean): String; public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.ButtonGenerateClick(Sender: TObject); var Length: Integer; Password: String; begin Length := StrToInt(EditLength.Text); Password := GeneratePassword(Length, CheckBoxUpperCase.Checked, CheckBoxLowerCase.Checked, CheckBoxNumbers.Checked, CheckBoxSymbols.Checked); LabelResult.Caption := Password; end; function TForm1.GeneratePassword(aLength: Integer; aUseUpperCase, aUseLowerCase, aUseNumbers, aUseSymbols: Boolean): String; const UpperCaseChars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; LowerCaseChars = 'abcdefghijklmnopqrstuvwxyz'; NumberChars = '0123456789'; SymbolChars = '!@#$%^&*()-_=+[]{}|;:,.<>?/'; var CharSet: String; I: Integer; begin CharSet := ''; Result := ''; if aUseUpperCase then CharSet := CharSet + UpperCaseChars; if aUseLowerCase then CharSet := CharSet + LowerCaseChars; if aUseNumbers then CharSet := CharSet + NumberChars; if aUseSymbols then CharSet := CharSet + SymbolChars; Randomize; for I := 1 to aLength do Result := Result + CharSet[Random(Length(CharSet)) + 1]; end; end.
Passo 3: Explicação do Código
Vamos detalhar o funcionamento do código para que você possa entender cada parte do projeto.
- Componentes do Formulário:
EditLength
: Permite que o usuário insira o comprimento desejado da senha.CheckBoxUpperCase
,CheckBoxLowerCase
,CheckBoxNumbers
,CheckBoxSymbols
: Checkboxes para selecionar os tipos de caracteres que serão incluídos na senha.ButtonGenerate
: Um botão que, ao ser clicado, chama a função de geração de senha.LabelResult
: Exibe a senha gerada.
- Procedimento
ButtonGenerateClick
:
Este procedimento é acionado quando o botãoButtonGenerate
é clicado. Ele lê o comprimento da senha doEditLength
, chama a funçãoGeneratePassword
com os critérios selecionados e exibe a senha gerada noLabelResult
. - Função
GeneratePassword
:
Esta função gera a senha com base nos critérios fornecidos. Ela define os conjuntos de caracteres possíveis (UpperCaseChars
,LowerCaseChars
,NumberChars
,SymbolChars
) e os combina conforme as opções selecionadas. Em seguida, gera a senha aleatoriamente selecionando caracteres do conjunto combinado.
Veja abaixo a ilustração do projeto Gerador de Senhas Aleatórias:

Código fonte do exemplo
Você pode fazer o download do exemplo do projeto através do repositório do github:
https://github.com/Gisele-de-Melo/gerador-de-senhas-aleatorias-em-delphi
Conclusão
Criar um gerador de senhas em Delphi é uma excelente maneira de praticar suas habilidades de programação e aprender sobre manipulação de strings, uso de componentes de interface e geração de números aleatórios. Este projeto não apenas ajuda a proteger dados pessoais e contas online, mas também serve como uma ferramenta prática para aprimorar suas habilidades de desenvolvimento em Delphi.
Ao seguir este guia, você desenvolveu um aplicativo funcional e compreendeu os conceitos por trás da criação de senhas seguras. Continue explorando outras funcionalidades e aprimorando seu projeto para torná-lo ainda mais robusto e eficiente.