Gerador de Senhas
Publicado por Gustavo (última atualização em 03/12/2023)
[ Hits: 3.249 ]
Por curiosidade e vontade de aprender resolvi criar um gerador de senhas.
Mas não queria que fosse um simples gerador de senhas, então o script está integrado com uma api que valida se a senha que foi criada está comprometida em algum vazamento de dados.
E caso o retorno da api informe que a senha está comprometida o script irá gerar uma nova senha até conseguir uma senha segura.
#!/bin/bash repeat="True" check_password_pwned() { local password="$1" local hashed_password local hash_prefix local hash_suffix local response local hash_suffix_from_response hashed_password=$(echo -n "$password" | sha1sum | awk '{print $1}') # Obtém o hash SHA-1 da senha hash_prefix=${hashed_password:0:5} # Obtém os primeiros 5 caracteres do hash response=$(curl -s "https://api.pwnedpasswords.com/range/$hash_prefix") hash_suffix=$(echo -n "$password" | sha1sum | awk '{print toupper($1)}' | cut -c 6-40) while IFS= read -r line; do hash_suffix_from_response=$(echo "$line" | cut -d ":" -f 1) if [ "$hash_suffix" = "$hash_suffix_from_response" ]; then echo -e "Mas esta senha foi encontrada em vazamentos conhecidos. Vamos gerar uma nova, aguarde.\n" return 1 # Senha comprometida fi done <<< "$response" echo "Esta senha não foi encontrada em vazamentos conhecidos." return 0 # Senha não comprometida } # Função para gerar senha forte generate_password() { local password # Usando /dev/urandom para gerar uma senha aleatória de 16 caracteres password1=$(tr -dc '[:alnum:]!@#$%^&*()_+=' < /dev/urandom | head -c 6) password2=$(tr -dc '[:alnum:]!@#$%^&*()_+=' < /dev/urandom | head -c 6) password3=$(tr -dc '[:alnum:]!@#$%^&*()_+=' < /dev/urandom | head -c 6) echo "$password1-$password2-$password3" } while [[ "$repeat" == "True" ]]; do # Gera uma senha forte strong_password=$(generate_password) echo "Senha forte gerada: $strong_password" check_password_pwned "$strong_password" if [ $? -eq 0 ]; then repeat="False" fi done
Retirar o link do download de páginas protetoras
Script para configuracao rapida da eth0
Instalador dos Drivers da NVIDIA para Debian
Instalar e Configurar o Slackware Linux em 2025
Como configurar os repositórios do apt no Debian 12 em 2025
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Configurando o Conky para iniciar corretamente no sistema
3 configurações básicas que podem melhorar muito a sua edição pelo editor nano
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
Proxmox- Raid Via Hardware ou Software (2)
Discussão sobre monitoramento da integridade de arquivos (5)