Gerador de senhas com Dialog
Publicado por Giovani Ferreira 20/09/2006
[ Hits: 10.007 ]
Homepage: http://jova2.worpress.com
Continuando meus estudos sobre Shell Script e Dialog, aperfeiçoei um script gerador de senhas criado anteriormente, agora ele conta com uma interface em Dialog muito legal.
#!/bin/bash #Script gerador de senhas, #Feito por Giovani Ferreira. #Criado com base na apostila e exemplos #de Aurélio Marinho Jargas. #Material disponivel em http://aurelio.net/shell/dialog/ # # # proxima=primeira # loop principal while : ; do # Aqui é identificada qual tela deve ser mostrada. # Em cada tela são definidas as variáveis 'anterior' # e 'proxima' # que definem os rumos da navegação. case "$proxima" in primeira) proxima=carac dialog \ --cr-wrap \ --sleep 4 \ --backtitle 'Gerador de Senhas' \ --title 'Script Gerador de Senhas' \ --infobox " Este é um script gerador de senhas de acordo com o comando mkpasswd. Feito por Giovani Ferreira. Navegação: <Proxima > Próxima Tela. <Anterior> Tela Anterior. Esc Sai do Programa. " 15 60 ;; carac) anterior=primeira proxima=numer carac=$(dialog --stdout \ --backtitle 'Gerador de Senhas' \ --ok-label 'Próximo' \ --cancel-label 'Anterior' \ --inputbox 'Informe quantos caracteres sua senha será composta:' 10 45) ;; numer) anterior=carac proxima=maius numer=$(dialog --stdout \ --backtitle 'Gerador de Senhas' \ --ok-label 'Próximo' \ --cancel-label 'Anterior' \ --inputbox 'Informe quantos números farão parte da senha:' 10 45) ;; maius) anterior=numer proxima=minus maius=$(dialog --stdout \ --backtitle 'Gerador de Senhas' \ --ok-label 'Próximo' \ --cancel-label 'Anterior' \ --inputbox 'Informe quantas letras MAIUSCULAS farão parte da senha:' 10 45) ;; minus) anterior=maius proxima=espec minus=$(dialog --stdout \ --backtitle 'Gerador de Senhas' \ --ok-label 'Próximo' \ --cancel-label 'Anterior' \ --inputbox 'Informe quantas letras minusculas farão parte da senha:' 10 45) ;; espec) anterior=minus proxima=final espec=$(dialog --stdout \ --backtitle 'Gerador de Senhas' \ --ok-label 'Próximo' \ --cancel-label 'Anterior' \ --inputbox 'Informe quantos carasteres especiais farão parte da senha:' 10 45) ;; final) if test $((numer+maius+minus+espec)) -gt $carac then proxima=carac dialog \ --cr-wrap \ --sleep 5 \ --backtitle 'Gerador de Senhas' \ --title 'Parâmetros invalidos:' \ --infobox " Impossivel criar a senha com: Números: $numer MAIUSCULAS: $maius Minusculas: $minus Especiais: $espec Em apenas $carac caracteres. Aguarde que o programa será reiniciado... " 15 50 else s1=$( mkpasswd -l $carac -d $numer -C $maius -c $minus -s $espec ) s2=$( mkpasswd -l $carac -d $numer -C $maius -c $minus -s $espec ) s3=$( mkpasswd -l $carac -d $numer -C $maius -c $minus -s $espec ) proxima=reinicio dialog \ --cr-wrap \ --sleep 5 \ --backtitle 'Gerador de Senhas' \ --title 'Sugestões de senhas!' \ --infobox " Três sugestões de senhas de acordo com os parâmetros passados. $s1 $s2 $s3 " 15 50 \ --and-widget \ --begin 35 50 \ --yesno 'Deseja reiniciar o programa?' 0 0 if test $? -eq 0 then proxima=primeira else break fi #break fi ;; *) echo "Janela desconhecida '$proxima'." echo Abortando programa... exit esac # Aqui é feito o tratamento genérico de Código de Retorno # de todas as telas. Volta para a tela anterior se for # CANCELAR, sai do programa se for ESC. retorno=$? [ $retorno -eq 1 ] && proxima=$anterior # cancelar [ $retorno -eq 255 ] && break # Esc done
Baixar fontes em massa utilizando o terminal Linux
Script - muda conteúdo de arquivos texto de iso-8859-1 para utf8 recursivamente
Script para Gerenciamento de Pacotes no Slackware
Tags de Cores e formatação no Terminal
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Título: Descobrindo o IP externo da VPN no Linux
Armazenando a senha de sua carteira Bitcoin de forma segura no Linux
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Como colorir os logs do terminal com ccze
Instalação Microsoft Edge no Linux Mint 22
Como configurar posicionamento e movimento de janelas no Lubuntu (Openbox) com atalhos de teclado
Máquinas Virtuais com IP estático acessando Internet no Virtualbox
Meus HDs não aparecem mais no boot da placa mãe (5)
Compartilhando uma ideia sobre computação quantica (0)
DICAS: Abrir arquivos em lotes no terminal usando o LibreOffice (1)