Gerador de Senhas
Publicado por Gustavo (última atualização em 03/12/2023)
[ Hits: 3.644 ]
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
Pequeno Script para você ver a maioria dos filmes e sons.
Remoção completa de gateway para Tivoli Framework
Comandos para Avira AntiVir (ATUALIZADO!)
Balanceamento e Redundância utilizando 2 Links Speedy (ip fixo)
Cadastrando usuários no Squid através de Shell Script
XFCE - quase um Gnome ou Plasma mas muito mais leve
LXQT - funcional para máquinas pererecas e usuários menos exigentes
Instalação do K3s Single-Node com Rancher no Ubuntu 24.04
Usei o NotebookLM para Auditar Logs do Linux
Cinnamon seria a aposta acertada frente às outras interfaces gráficas mais populares?
Como Configurar DNS Reverso (PTR) em Ambientes Linux e Microsoft
Preparando o Ambiente para Administrar o Samba 4 a partir do Windows com RSAT
WiFi Seguro: EAP-TLS com FreeRADIUS e Active Directory (LDAP)
Midia de instalação LM-21.3 não inicializa (5)
O que você está ouvindo agora? [2] (227)









