Criando um Gerador de Senhas Aleatórias em Delphi

Gerador de Senhas Aleatórias em Delphi
Chave e Cadeado.

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

  1. Criar um Novo Projeto:
    Abra o Delphi e crie um novo projeto VCL Forms Application.
  2. 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.

  1. 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.
  2. Procedimento ButtonGenerateClick:
    Este procedimento é acionado quando o botão ButtonGenerate é clicado. Ele lê o comprimento da senha do EditLength, chama a função GeneratePassword com os critérios selecionados e exibe a senha gerada no LabelResult.
  3. 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:

Gerador de Senhas Aleatórias em Delphi
Ilustração do projeto.

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.

Posts Relacionados


Deixe um comentário