Gerar senhas aleatórias de qualquer tamanho

Publicado por Iago Lira (última atualização em 23/08/2017)

[ Hits: 801 ]

Homepage: NO

Download concatena.sh




Gera senhas aleatórias de qualquer tamanho com letras, números e caracteres especiais.

  



Esconder código-fonte

#!/bin/bash
#+---------------------------------+
#|Script: concatena                |
#|Autor: Francisco Iago Lira Pasos |
#|Localidade: Teresina - PI        |
#|Email: iagolirapassos@gmail.com  |
#+---------------------------------+
export minusculo=(a b c d e f g h i j k l m n o p q r s t u v w x y z)
export maiusculo=(A B C D E F G H I J K L M N O P Q R S T U V W X Y Z)
export especiais=(\! \@ \# \$ \% \( \) \- \_ \+ \= \{ \[ \^ \~ \] \} \/ \? \: \; \. \> \< \, \\ \| \*)
export numeros=(0 1 2 3 4 5 6 7 8 9)
export all=(${especiais[@]} ${minusculo[@]} ${maiusculo[@]} ${numeros[@]})
export Mnu=(${minusculo[@]} ${maiusculo[@]})
export Mnun=(${minusculo[@]} ${maiusculo[@]} ${numeros[@]})
export permutacao1=${#maiusculo[@]}
export permutacao2=${#minusculo[@]}
export permutacao3=${#numeros[@]}
export permutacao4=${#especiais[@]}
export permutacao5=$((${#minusculo[@]}+${#maiusculo[@]}))
export permutacao6=$((${#minusculo[@]}+${#maiusculo[@]}+${#numeros[@]}))
export permutacao7=$((${#especiais[@]}+${#minusculo[@]}+${#maiusculo[@]}+${#numeros[@]}))


factorial()
{
factorial=1
    if [ $1 > 1 ]; then
     cnt=0
     while :
     do
      let cnt=$cnt+1
      factorial=$(echo "$factorial*$cnt" | bc -l)  
      [ $cnt == $1 ] && break
     done
    else
        echo 1
    fi
}; factorial $permutacao

clear
echo  "
         +-----------------------------------+
         | Escolha as combinações:           |
         |                                   |
         | (1) Maiúsculas                    |
         | (2) Minúsculas                    |
         | (3) Números                       |
         | (4) Caracteres especiais          |
         | (5) Maiúsculas+Minúsculas         |
         | (6) Maiúsculas+Minúsculas+Números |
         | (7) Todas as combinações          |
         +-----------------------------------+"
read -p "Digite a opção desejada:" opcao
read -p "Quantas combinações você deseja (>1)?: " combinacao
         
for (( i=1; i<=$combinacao; i++ ))
do
case $opcao in
   1) echo -n "${maiusculo[$(((RANDOM%$(($permutacao1-1)))))]}" ;;
   2) echo -n "${minusculo[$(((RANDOM%$(($permutacao2-1)))))]}" ;;
   3) echo -n "${numeros[$(((RANDOM%$(($permutacao3-1)))))]}" ;;
   4) echo -n "${especiais[$(((RANDOM%$(($permutacao4-1)))))]}" ;;
   5) echo -n "${Mnu[$(((RANDOM%$(($permutacao5-1)))))]}" ;;
   6) echo -n "${Mnun[$(((RANDOM%$(($permutacao6-1)))))]}" ;;
   7) echo -n "${all[$(((RANDOM%$(($permutacao7-1)))))]}" ;;
   *) echo "INVALID NUMBER!" ;;
esac
done
echo

Scripts recomendados

Função que indica o estado do funcionamento do script

Faq Fedora 10

Script para montagem de compartilhamento SAMBA (Gentoo)

Rastrear emails na internet

Backup em Fita DDS


  

Comentários
[1] Comentário enviado por thiago_ferreira em 24/08/2017 - 16:55h

Bom! Rodou sem problemas.

[2] Comentário enviado por FazedorDeM**** em 07/09/2017 - 17:01h

Muito bom, vai ser bem útil pra mim, só deu um problema que quando coloco este arquivo numa pasta com outros arquivos, ele começa a mostrar o nome dos arquivos na senha.
Na vida temos uma única certeza...

Todos nós já quebramos um sistema.

[3] Comentário enviado por iagolira em 10/09/2017 - 14:58h


[2] Comentário enviado por FazedorDeM**** em 07/09/2017 - 17:01h

Muito bom, vai ser bem útil pra mim, só deu um problema que quando coloco este arquivo numa pasta com outros arquivos, ele começa a mostrar o nome dos arquivos na senha.
Na vida temos uma única certeza...

Todos nós já quebramos um sistema.


Rpz já corrigi esse problema, vou lançar uma versão melhorada é só aguardar.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor HostGator.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Viva o Android

Tópicos

Top 10 do mês

Scripts