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.
Abra seu terminal e navegue até o diretório
/home/labex/projectusando o comandocd:cd /home/labex/projectCrie um novo arquivo chamado
genpass.shusando o comandotouch. Este será o arquivo onde você escreverá seu script gerador de senhas:touch genpass.shAbra o arquivo
genpass.shem um editor de texto. Você pode usarnano,vimou 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.
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.
Adicione o seguinte código ao final do arquivo
genpass.sh. Esta parte do script chama a funçãogenerate_passworde 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.
Salve o arquivo
genpass.shem seu editor de texto.No terminal, torne o script executável usando o comando
chmod:chmod +x genpass.shEste comando adiciona permissões de execução ao arquivo, permitindo que ele seja executado como um programa.
Execute o script usando o seguinte comando:
sh genpass.shO 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:27Execute 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.



