Gerador de Senhas
Publicado por Gustavo (última atualização em 03/12/2023)
[ Hits: 3.408 ]
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
PDC linux desligando pc em uma de windows
Parando o Screeensaver do Gnome durante uma reprodução no mplayer
retira espaços em branco de arquivos
Servidor de Backup com Ubuntu Server 24.04 LTS, RAID e Duplicati (Dell PowerEdge T420)
Visualizar câmeras IP ONVIF no Linux sem necessidade de instalar aplicativos
Atualizar Debian Online de uma Versão para outra
Proteja seu Linux Mint com o Timeshift: Restaure o sistema mesmo que ele não inicie!
Instalando Google Chrome no Debian 13
meus dois pen drives não são mais reconhecidos pelo meu PC apos tentar... (1)
meus dois pen drives não são mais reconhecidos pelo meu PC apos tentar... (1)