Pular para o conteúdo

Gerar senhas aleatórias de qualquer tamanho

Gera senhas aleatórias de qualquer tamanho com letras, números e caracteres especiais.
Iago Lira iagolira
Hits: 6.377 Categoria: Shell Script Subcategoria: Avançado
  • Download
  • Nova versão
  • Indicar
  • Denunciar

Descrição

Gera senhas aleatórias de qualquer tamanho com letras, números e caracteres especiais.
Download concatena.sh Enviar nova versão

Versões atualizadas deste script

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

cg_ext - script para alteração de extensão de arquivos em larga escala

Fluxbox - Slideshow de wallpapers aleatórios

Controlar o brilho da tela.

Baixe arquivos em pedaços com o DCDownloader

Mantenha seu relógio ajustado 2.0

#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

Entre na sua conta para comentar.