Desenvolvimento de Gerador de Senhas Aleatórias

LinuxBeginner
Pratique Agora

Introdução

Neste projeto, você aprenderá a criar um script gerador de senhas aleatórias que atenda a requisitos de segurança específicos. O script gerará uma senha de 12 caracteres que inclui pelo menos um dígito, uma letra maiúscula, uma letra minúscula e um caractere especial do conjunto ><+-{}:.&;. Este projeto fornecerá experiência prática em scripting e no trabalho com dados aleatórios.

👀 Pré-visualização

$ cd /home/labex/project
$ sh genpass.sh
## Exemplo
2Dsxw9+xS:27

🎯 Tarefas

Neste projeto, você irá:

  • Configurar o ambiente do projeto e criar o arquivo de script necessário.
  • Implementar a lógica para gerar uma senha aleatória que atenda aos requisitos de complexidade especificados.
  • Testar o script gerador de senhas para garantir que ele funcione corretamente.

🏆 Conquistas

Ao concluir este projeto, você será capaz de:

  • Compreender o processo de criação de um script gerador de senhas aleatórias.
  • Implementar um algoritmo de geração de senhas que satisfaça requisitos específicos de tipo de caractere.
  • Testar e validar as senhas geradas para confirmar se elas atendem aos critérios desejados.

Configurar o Ambiente do Projeto

Nesta etapa, você preparará seu ambiente de trabalho e criará o arquivo necessário para o script gerador de senhas.

  1. Abra seu terminal e navegue até o diretório /home/labex/project usando o comando cd:

    cd /home/labex/project
    
  2. Crie um novo arquivo chamado genpass.sh usando o comando touch. Este será o arquivo onde você escreverá seu script gerador de senhas:

    touch genpass.sh
    
  3. Abra o arquivo genpass.sh em um editor de texto. Você pode usar nano, vim ou qualquer editor de texto de sua preferência. Adicione a seguinte linha shebang no início do arquivo:

    #!/bin/zsh
    
    ## Random Password Generator
    ## This script generates a random password that meets the specified requirements.
    

    Esta linha informa ao sistema para usar o shell zsh para executar o script. Os comentários que seguem a linha shebang fornecem uma breve descrição do script.

Implementar a Lógica de Geração de Senhas

Nesta etapa, você adicionará a lógica principal ao script genpass.sh para gerar senhas aleatórias que atendam aos requisitos de complexidade.

  1. Dentro do arquivo genpass.sh, adicione a seguinte função para gerar a senha:

    ## Function to generate a random password
    generate_password() {
      local length=12
      local password=''
    
      ## Special characters
      local special_chars='><+-{}:.&;'
      local special_char="${special_chars:$RANDOM%${#special_chars}:1}"
      password+="$special_char"
    
      ## Digits
      local digits='0123456789'
      local digit="${digits:$RANDOM%${#digits}:1}"
      password+="$digit"
    
      ## Uppercase letters
      local upper_case='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
      local upper="${upper_case:$RANDOM%${#upper_case}:1}"
      password+="$upper"
    
      ## Lowercase letters
      local lower_case='abcdefghijklmnopqrstuvwxyz'
      local lower="${lower_case:$RANDOM%${#lower_case}:1}"
      password+="$lower"
    
      ## Remaining characters
      local remaining_length=$((length - 4))
      local characters='><+-{}:.&;0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'
      local num_characters=${#characters}
    
      for ((i = 0; i < remaining_length; i++)); do
        local random_char="${characters:$RANDOM%$num_characters:1}"
        password+="$random_char"
      done
    
      ## Shuffle the order of password characters
      password=$(echo "$password" | fold -w1 | shuf | tr -d '\n')
    
      echo "$password"
    }
    

    Esta função funciona da seguinte forma:

    • Inicializa a senha com um caractere especial, um dígito, uma letra maiúscula e uma letra minúscula para atender aos critérios básicos.
    • Calcula o número de caracteres restantes para atingir o comprimento desejado de 12.
    • Seleciona aleatoriamente os caracteres restantes de um conjunto de dígitos, letras (maiúsculas e minúsculas) e caracteres especiais.
    • Embaralha a senha para garantir que os caracteres específicos não estejam sempre no início.
  2. Adicione o seguinte código ao final do arquivo genpass.sh. Esta parte do script chama a função generate_password e imprime a senha gerada no console:

    ## Generate password and output
    generate_password
    

Testar o Gerador de Senhas

Nesta etapa, você testará o script genpass.sh para garantir que ele gere senhas que atendam a todos os requisitos.

  1. Salve o arquivo genpass.sh em seu editor de texto.

  2. No terminal, torne o script executável usando o comando chmod:

    chmod +x genpass.sh
    

    Este comando adiciona permissões de execução ao arquivo, permitindo que ele seja executado como um programa.

  3. Execute o script usando o seguinte comando:

    sh genpass.sh
    

    O script deve gerar uma senha aleatória de 12 caracteres no console. A saída deve conter pelo menos um caractere especial, um dígito, uma letra maiúscula e uma letra minúscula.

    ## Example
    2Dsxw9+xS:27
    
  4. Execute o script mais algumas vezes. A cada vez, uma senha diferente deve ser gerada. Isso verifica se a aleatoriedade no gerador de senhas funciona corretamente.

Parabéns! Você implementou e testou com sucesso um gerador de senhas aleatórias que atende aos requisitos de complexidade especificados.

Resumo

Parabéns! Você concluiu este projeto e criou um script gerador de senhas aleatórias. Agora você tem uma base para construir em projetos de scripting futuros. Você pode continuar praticando com mais laboratórios no LabEx para aprimorar ainda mais suas habilidades.

✨ Verificar Solução e Praticar