Gerador de senhas com Dialog
Publicado por Giovani Ferreira 20/09/2006
[ Hits: 10.251 ]
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
Script de instalação do Hamachi
Personalizando o seu shell com bashrc_dahora
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
[Resolvido] VirtualBox can't enable the AMD-V extension
Como verificar a saúde dos discos no Linux
Como instalar , particionar, formatar e montar um HD adicional no Linux?
Como automatizar sua instalação do Ubuntu para desenvolvimento de software.
Não consigo instalar distro antiga no virtualbox nem direto no hd (15)
Quais os códigos mais dificeis que vcs sabem fazer? (12)
systemd-resol... precisa ser reiniciado periodicamente [RESOLVIDO] (7)









