Script gerador de senha

Publicado por Xerxes em 12/06/2024

[ Hits: 190 ]

 


Script gerador de senha



Basta executar o script a seguir e você poderá obter diversos tipos de senhas. A explicação do script vem logo a seguir.

Abra um novo arquivo de texto e cole o seguinte conteúdo:

#!/bin/bash

# Função para gerar uma senha
gerar_senha() {
local comprimento=$1
local usar_numeros=$2
local usar_caracteres_especiais=$3
local usar_letras_maiusculas=$4
local usar_letras_acentuadas=$5

# Base da senha apenas com letras minúsculas
local caracteres='abcdefghijklmnopqrstuvwxyz'

# Adicionar números
if [[ $usar_numeros == 's' ]]; then
caracteres+='0123456789'
fi

# Adicionar letras maiúsculas
if [[ $usar_letras_maiusculas == 's' ]]; then
caracteres+='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
fi

# Adicionar letras acentuadas
if [[ $usar_letras_acentuadas == 's' ]]; then
caracteres+='áéíóúâêîôûàèìòùãõäëïöüç'
fi

# Adicionar caracteres especiais
if [[ $usar_caracteres_especiais == 's' ]]; then
caracteres+='!@#$%^&*()_+=-[]{}|;:,.<>?'
fi

# Gerar senha
senha=''
for i in $(seq 1 $comprimento); do
senha+="${caracteres:RANDOM % ${#caracteres}:1}"
done

echo -e "\nSenha gerada usando as seguintes opções:"
echo " - Quantidade de caracteres: $comprimento"
echo " - Incluir números: ${usar_numeros^^}"
echo " - Incluir caracteres especiais: ${usar_caracteres_especiais^^}"
echo " - Incluir letras maiúsculas: ${usar_letras_maiusculas^^}"
echo " - Incluir letras acentuadas: ${usar_letras_acentuadas^^}"
echo -e "\nSenha gerada: $senha"
}

# Perguntar ao usuário as configurações da senha
read -p "Quantidade de caracteres na senha: " comprimento
read -p "Incluir números? (s/n): " usar_numeros
read -p "Incluir caracteres especiais? (s/n): " usar_caracteres_especiais
read -p "Incluir letras maiúsculas? (s/n): " usar_letras_maiusculas
read -p "Incluir letras acentuadas? (s/n): " usar_letras_acentuadas

# Chamar a função para gerar a senha
gerar_senha $comprimento $usar_numeros $usar_caracteres_especiais $usar_letras_maiusculas $usar_letras_acentuadas

Salve o arquivo com o nome que desejar como por exemplo "gerador_de_senhas.sh".

Trone-o executável:

chmod +x gerador_de_senhas.sh

Execute-o:

./gerador_de_senhas.sh

O script é simples e não é a prova de usuário. Por exemplo, quando for perguntado quantos caracteres a senha deve ter, se o usuário digitar algo sem sentido como "b", o script continua. Só não vai funcionar.

Segue a explicação do script:

  • #!/bin/bash: Esta linha indica que o script deve ser executado usando o interpretador Bash.
  • gerar_senha() { ... }: Esta sintaxe define uma função chamada gerar_senha. Funções em Bash ajudam a organizar o código de forma reutilizável.
  • local comprimento=$1: Esta linha define uma variável local chamada comprimento e a atribui ao primeiro argumento passado para a função ($1).
  • local usar_numeros=$2, local usar_caracteres_especiais=$3, local usar_letras_maiusculas=$4, local usar_letras_acentuadas=$5: Definem variáveis locais para os outros argumentos que serão passados para a função.
  • local caracteres='abcdefghijklmnopqrstuvwxyz': Cria uma variável chamada caracteres inicializada apenas com letras minúsculas.
  • if [[ $usar_numeros == 's' ]]; then ... fi: Verifica se o usuário escolheu incluir números. Se sim (== 's'), adiciona a sequência '0123456789' à variável caracteres.
  • if [[ $usar_letras_maiusculas == 's' ]]; then ... fi: Verifica se o usuário escolheu incluir letras maiúsculas. Se sim, adiciona letras maiúsculas à variável caracteres.
  • if [[ $usar_letras_acentuadas == 's' ]]; then ... fi: Verifica se o usuário escolheu incluir letras acentuadas. Se sim, adiciona as letras acentuadas à variável caracteres.
  • if [[ $usar_caracteres_especiais == 's' ]]; then ... fi: Verifica se o usuário escolheu incluir caracteres especiais. Se sim, adiciona os caracteres à variável caracteres.
  • senha='': Inicializa uma variável chamada senha como uma string vazia.
  • for i in $(seq 1 $comprimento); do ... done: Cria um loop que executa de 1 até o valor de comprimento. Por exemplo, se comprimento for 12, o loop será executado 12 vezes.
  • senha+="${caracteres:RANDOM % ${#caracteres}:1}": Em cada iteração do loop, um caractere aleatório da variável caracteres é adicionado à variável senha.
  • echo -e "\nSenha gerada usando as seguintes opções:": Exibe uma mensagem informativa no terminal indicando que mostramos as opções usadas para gerar a senha. O -e habilita a interpretação de caracteres de escape (como \n para nova linha).
  • echo -e "\nSenha gerada: $senha": Exibe a senha gerada.
  • read -p "Quantidade de caracteres na senha: " comprimento: Exibe a pergunta ao usuário e armazena a resposta na variável comprimento.
  • read -p "Incluir números? (s/n): " usar_numeros: Exibe a pergunta ao usuário e armazena a resposta na variável usar_numeros.
  • read -p "Incluir caracteres especiais? (s/n): " usar_caracteres_especiais: Exibe a pergunta ao usuário e armazena a resposta na variável usar_caracteres_especiais.
  • read -p "Incluir letras maiúsculas? (s/n): " usar_letras_maiusculas: Exibe a pergunta ao usuário e armazena a resposta na variável usar_letras_maiusculas.
  • read -p "Incluir letras acentuadas? (s/n): " usar_letras_acentuadas: Exibe a pergunta ao usuário e armazena a resposta na variável usar_letras_acentuadas.
  • gerar_senha $comprimento $usar_numeros $usar_caracteres_especiais $usar_letras_maiusculas $usar_letras_acentuadas: Chama a função gerar_senha, passando as respostas do usuário como argumentos.

Curiosidade:

E o que significa "^^" em alguns lugares do script? O operador "^^" é utilizado com a notação "${variável^^}" para converter uma string para maiúsculas. Aqui está um exemplo para ilustrar:

Se você tiver a variável "usar_numeros" com o valor "s":
- "${usar_numeros^^}" converterá "s" para "S".

Teste no terminal:

variavel="olá, mundo!"
$ echo "${variavel^^}"


É isso!
Outras dicas deste autor

Crie o seu jogo roguelike em Python

Instalação da Steam no Debian 8 (Jessie)

Como instalar o duf no Debian 11 (Bullseye)

Arch Linux fácil

Do Windows XP ao GNU/Linux

Leitura recomendada

VirusZoo - Um zoológico diferente

Recuperando a senha de root

Backtrack 4 - 0trace

Regras úteis de segurança com iptables

Não seja mais rastreado na web

  

Comentários

Nenhum comentário foi encontrado.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts