Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!
password_generator — Um CLI de gerador de senhas criptograficamente seguro e pronto para produção, com 17 modos de geração, transparência de entropia e opções abrangentes de personalização. | Kitploit
Um CLI de gerador de senhas criptograficamente seguro e pronto para produção, com 17 modos de geração, transparência de entropia e opções abrangentes de personalização.
Um gerador de senhas CLI criptograficamente seguro, pronto para produção, com 17 modos de geração, transparência de entropia e opções abrangentes de personalização.
Funcionalidades
17 Modos de Geração
Gerador
Comando
Descrição
Aleatório
random, r
Senhas aleatórias criptograficamente seguras
Frase-senha
phrase, p
Frases-senha baseadas em palavras (lista EFF)
Leetspeak
leet, l
Frases-senha com substituição de caracteres (A→4, E→3, etc.)
PIN
pin
PINs numéricos de comprimento configurável
Pronunciável
pronounce, pr
Senhas fáceis de falar baseadas em sílabas
UUID
uuid, u
UUIDs RFC 4122/9562 (v1, v4, v7) e Curto (Base58)
Base64
base64, b64
Segredos codificados em base64 seguros para URL
Segredo JWT
jwt
Segredos de alta entropia para assinatura JWT (HS256/384/512)
Chave WiFi
wifi
Chaves compatíveis com WPA2/WPA3 (8-63 caracteres)
Chave de Licença
license
Chaves de licença de software (formato AXB, ex.: 5x5)
Códigos de Recuperação
recovery
Códigos de backup 2FA (numéricos ou baseados em palavras)
Código/Segredo OTP
otp
Códigos TOTP/HOTP e segredos com URI otpauth
Padrão
pattern
Senhas baseadas em grade visual
Frase Temática
phrase (personalizado)
Frases-senha de listas de palavras temáticas (animais, sci-fi, etc.)
Fonético OTAN
phonetic, ph
Converter texto/senhas para alfabeto OTAN (Alfa-Bravo)
Analisar
analyze, check
Analisar a força de uma senha existente
Histórico
history
Ver histórico de geração de senhas (padrão: 10 entradas)
Perfis Predefinidos: Geração com um clique para casos de uso comuns (Forte, Memorável, Dev, etc.)
Menu Interativo: Menu completo para geração guiada
Lançadores de Plataforma: Scripts dedicados .bat e .sh com menus interativos
Segurança Criptográfica: Usa o módulo secrets do Python para CSPRNG
Transparência de Entropia: Cálculo de entropia em tempo real e análise de força
Análise zxcvbn: Verificação de força de senha baseada em padrões (ataques de dicionário, sequências)
Área de Transferência Segura: Limpeza automática da área de transferência após tempo configurável
Códigos OTP ao Vivo: Gera códigos TOTP atuais de 6/8 dígitos junto com o segredo
Códigos QR para OTP: Códigos QR digitalizáveis para aplicativos autenticadores
Saída Colorida: Distinção visual entre tipos de caracteres
Exportação JSON: Saída legível por máquina para scripts
Armazenamento Seguro em Cofre: Cofre dedicado gerencia chaves criptográficas via .env (recomendado) ou .vault.key legado com permissões restritas 0600
Arquitetura de Zero Vazamento: 🛡️ Código-fonte e logs são bloqueados do acesso do navegador no modo PWA; entradas sensíveis são mascaradas no modo CLI para análise de entropia.
Exportações Editadas: Exportação de histórico com foco em segurança, com ocultação automática de senhas por padrão
Interface de Indentação Zero: Saída limpa e profissional alinhada à esquerda para todos os modos
Leetspeak Inteligente: Substituição probabilística para senhas mais naturais e legíveis
Validação Robusta: Prompts interativos com valores padrão e tratamento recursivo de erros
Frontend PWA Defensivo: 🛡️ Verificações de segurança integradas para ativos CDN para evitar falhas na inicialização.
Modificadores Globais: Modos --easy-read e --easy-say
Modo Paranóico: Coleta manual opcional de entropia via variação de tempo do teclado para máxima segurança.
Instalação
root@kitploit:~
# Clone o repositório
git clone https://github.com/krishnakanthb13/password_generator.git
cd password_generator
# Instale as dependências (colorama, cryptography, pyperclip, etc.)
pip install -r requirements.txt
Início Rápido
root@kitploit:~
# Gere uma senha aleatória de 20 caracteres
python main.py random -l 20
# Gere uma frase-senha de 4 palavras
python main.py phrase -w 4 --capitalize
# Gere uma frase-senha leetspeak
python main.py leet -w 3 -s _
# Gere com análise de entropia
python main.py --show-entropy random -l 16
# Inicie o modo interativo
python main.py --interactive
# Use um perfil predefinido (Forte)
python main.py --preset strong --show-entropy
Exemplos de Uso
Senhas Aleatórias
root@kitploit:~
# Senha básica de 16 caracteres
python main.py random
# 24 caracteres, apenas letras
python main.py random -l 24 --no-symbols --no-digits
# Fácil de ler (sem 0/O, 1/l/I)
python main.py --easy-read random -l 20
# Com requisitos mínimos
python main.py random -l 16 --min-upper 2 --min-digits 2 --min-symbols 1
# Modo balanceado (principalmente letras, menos símbolos)
python main.py random -l 24 --balanced
# Analise uma senha existente
python main.py analyze "p@ssword123"
# Registre no histórico
python main.py --log random -l 16
# Veja as últimas 10 entradas do histórico (padrão)
python main.py history
# Veja todas as entradas do histórico (descriptografadas em tempo real)
python main.py history --all
# Veja o histórico com senhas ocultadas
python main.py history --redact
# Exporte o histórico (Ocultado por padrão)
python main.py history --export backup.json
# Exporte o histórico (Texto simples - requer cuidado)
python main.py history --export secrets.csv --no-redact
# Saída JSON para scripts
python main.py --json jwt --bits 256
Referência de Comandos
Flag
Descrição
--preset
Usar um perfil de segurança predefinido (strong, memorable, dev, pin, web, wifi, key)
-i, --interactive
Iniciar modo de menu interativo
--paranoid
Ativar Modo Paranóico (coleta manual de entropia)
--json
Saída no formato JSON
--show-entropy
Exibir análise de entropia (ativado por padrão nos lançadores)
--check-strength
Executar análise de padrão zxcvbn
-c, --clipboard
Copiar resultado para a área de transferência
--confirm-copy
Solicitar confirmação para copiar resultado para a área de transferência
--clipboard-timeout
Limpar automaticamente a área de transferência após N segundos (padrão: 30)
--log
Registrar senha no histórico (criptografada com AES-128)
--no-color
Desativar saída colorida
--easy-read
Excluir caracteres ambíguos (0/O, 1/l/I)
--easy-say
Apenas caracteres pronunciáveis (sem símbolos)
Opções Específicas do Gerador
Aleatório (random, r)
Flag
Padrão
Descrição
-l, --length
16
Comprimento da senha (4-1024)
--no-uppercase
-
Excluir letras maiúsculas
--no-lowercase
-
Excluir letras minúsculas
--no-digits
-
Excluir dígitos
--no-symbols
-
Excluir símbolos
--include
-
Caracteres adicionais a incluir
--exclude
-
Caracteres a excluir
--no-repeats
-
Sem caracteres repetidos
--min-upper
0
Mínimo de caracteres maiúsculos
--min-lower
0
Mínimo de caracteres minúsculos
--min-digits
0
Mínimo de dígitos
--min-symbols
0
Mínimo de símbolos
--balanced
-
Proporção balanceada (60/20/20)
-n, --count
1
Quantidade a gerar
Frase-senha (phrase, p)
Flag
Padrão
Descrição
-w, --words
4
Número de palavras (2-64)
-s, --separator
-
Separador de palavras
--capitalize
-
Capitalizar cada palavra
--uppercase
-
Todas as palavras em maiúsculas
--alternate
-
Caixa alternada (aLtErNaTe)
--wordlist
-
Caminho para lista de palavras personalizada
-n, --count
1
Quantidade a gerar
Leetspeak (leet, l)
Flag
Padrão
Descrição
-w, --words
3
Número de palavras (2-64)
-s, --separator
-
Separador de palavras ( - _ . , )
-n, --count
1
Quantidade a gerar
PIN (pin)
Flag
Padrão
Descrição
-l, --length
6
Comprimento do PIN (4-64)
-n, --count
1
Quantidade a gerar
Pronunciável (pronounce, pr)
Flag
Padrão
Descrição
-l, --length
12
Comprimento da senha (4-128)
-n, --count
1
Quantidade a gerar
UUID (uuid)
Flag
Padrão
Descrição
--ver
4
Versão do UUID (1, 4, 7)
--short
-
Formato curto (Base58)
--upper
-
Saída em maiúsculas (apenas hex)
-n, --count
1
Quantidade a gerar
Base64 (base64, b64)
Flag
Padrão
Descrição
-b, --bytes
32
Número de bytes aleatórios
--url-safe
-
Usar caracteres seguros para URL
Segredo JWT (jwt)
Flag
Padrão
Descrição
--bits
256
Comprimento em bits (256, 384, 512)
--hex
-
Saída como string hexadecimal
Chave WiFi (wifi)
Flag
Padrão
Descrição
-l, --length
24
Comprimento da chave (8-63, padrão: 24)
--simple
-
Apenas alfanumérico (sem símbolos)
Chave de Licença (license)
Flag
Padrão
Descrição
--segments
4
Número de segmentos (2-64)
--segment-length
4
Caracteres por segmento (2-32)
Códigos de Recuperação (recovery)
Flag
Padrão
Descrição
-n, --count
10
Número de códigos (5-20, padrão: 10)
-l, --length
10
Comprimento do código (dígitos ou palavras, padrão: 10/3)
--words
-
Usar códigos baseados em palavras
Segredo OTP (otp)
Flag
Padrão
Descrição
--digits
6
Comprimento do código (6 ou 8)
--period
30
Período de tempo em segundos
--qr
-
Mostrar código QR no terminal
Padrão (pattern)
Flag
Padrão
Descrição
--grid
3
Tamanho da grade (ex.: 3x3)
Fonético (phonetic, ph)
Flag
Padrão
Descrição
--text
-
Texto a converter para alfabeto OTAN
-l, --length
8
Comprimento da sequência aleatória (4-64)
Histórico (history)
Flag
Padrão
Descrição
--last
10
Mostrar últimas N entradas (1-100, padrão: 10)
--all, -a
-
Mostrar todas as entradas do histórico (sobrescreve --last)
--search
-
Filtrar histórico por palavra-chave
--redact
-
Ocultar senhas na saída do terminal
--export
-
Exportar histórico para arquivo (JSON/CSV)
--no-redact
-
Não ocultar senhas na exportação (Cuidado!)
--clear
-
Limpar todas as entradas do histórico
Guia de Entropia
PassForge fornece um Relatório de Entropia abrangente, incluindo o tamanho bruto do conjunto de caracteres, bits de Shannon e estimativas de tempo de força bruta.
Entropia (bits)
Força
Caso de Uso
< 28
Muito Fraca
Nunca usar
28-36
Fraca
Apenas baixa segurança
36-60
Razoável
Contas padrão
60-80
Forte
Dados sensíveis
80-128
Muito Forte
Sistemas de alta segurança
> 128
Excelente
Infraestrutura crítica
Nota: Para uma explicação detalhada de cada tipo de gerador, consulte LITERATURE.md.
Estrutura do Projeto
root@kitploit:~
password_generator/
├── main.py # Ponto de entrada
├── requirements.txt # Dependências
├── src/
│ ├── __init__.py
│ ├── cli.py # Analisador de argumentos e banner
│ ├── command_handler.py # Roteamento de comandos
│ ├── interactive.py # Menu interativo
│ ├── generators/ # Todos os geradores de senha
│ │ ├── base.py # Classe base abstrata
│ │ ├── random_password.py # Gerador de senha aleatória
│ │ ├── passphrase.py # Gerador de frase-senha
│ │ ├── leetspeak.py # Gerador leetspeak
│ │ ├── pin.py # Gerador de PIN
│ │ ├── pronounceable.py # Gerador de senha pronunciável
│ │ ├── uuid_token.py # Gerador de token UUID
│ │ ├── base64_secret.py # Gerador de segredo Base64
│ │ ├── jwt_secret.py # Gerador de segredo JWT
│ │ ├── wifi_key.py # Gerador de chave WiFi
│ │ ├── license_key.py # Gerador de chave de licença
│ │ ├── recovery_codes.py # Gerador de códigos de recuperação
│ │ ├── otp.py # Gerador OTP
│ │ ├── pattern.py # Gerador de padrão
│ │ └── phonetic.py # Gerador fonético OTAN
│ ├── security/
│ │ ├── entropy.py # Calculadora de entropia
│ │ ├── strength_checker.py # Integração zxcvbn
│ │ └── vault.py # Criptografia segura do histórico
│ ├── output/
│ │ ├── formatter.py # Saída colorida
│ │ ├── logger.py # Registro do histórico
│ │ ├── clipboard.py # Manuseio seguro da área de transferência
│ │ └── qrcode_gen.py # Geração de código QR para OTP
│ ├── config/
│ │ ├── loader.py # Carregador de configuração YAML/JSON
│ │ └── presets.py # Perfis de segurança predefinidos
├── data/
│ └── wordlists/ # Listas de palavras temáticas (animals.txt, biology.txt, etc.)
└── tests/
Testes
root@kitploit:~
# Execute todos os testes
python -m pytest tests/ -v
# Execute uma classe de teste específica
python -m pytest tests/test_generators.py::TestRandomPasswordGenerator -v
# Execute com cobertura
python -m pytest tests/ --cov=src --cov-report=html
Todos os 53 testes unitários cobrem:
Todos os 15 modos de gerador especializados
Calculadoras de entropia e força zxcvbn
Limpeza automática da área de transferência e armazenamento seguro
Lógica de geração de código QR ASCII
Carregamento de configuração e predefinições
Configuração
PassForge suporta arquivos de configuração nos formatos YAML ou JSON.
Locais do Arquivo de Configuração (pesquisados em ordem):
./passforge.yaml ou ./passforge.json
./.passforge.yaml ou ./.passforge.json
~/.passforge/config.yaml ou ~/.passforge/config.json
Veja passforge.example.json para todas as opções disponíveis.
Construindo Executável Autônomo
PassForge pode ser compilado em um único executável autônomo usando PyInstaller.
Windows
root@kitploit:~
# Usando o script de construção
passforge_build.bat
# Ou manualmente
pip install pyinstaller
pyinstaller --onefile --name passforge --console main.py
Linux/macOS
root@kitploit:~
# Usando o script de construção
chmod +x passforge_build.sh
./passforge_build.sh
# Ou manualmente
pip install pyinstaller
pyinstaller --onefile --name passforge --console main.py
O executável será criado na pasta dist/ (~7MB, zero dependências).
🌐 PassForge Web (Complemento PWA)
PassForge agora inclui uma Interface Web (PWA) moderna e responsiva que fornece uma maneira visual de gerar e gerenciar senhas, mantendo total paridade com a versão CLI.
Principais Funcionalidades
Interface com Barra Lateral: Navegação fácil entre todos os tipos de geradores.
Controles Deslizantes Visuais: Ajuste comprimentos e contagens de palavras com controles deslizantes interativos.
Suporte a QR: Geração instantânea de código QR para compartilhar senhas ou segredos OTP.
Modo Escuro/Claro: Estética premium com alternância de tema sensível ao sistema.
Instalável: Suporte para instalação PWA no Windows, Linux e dispositivos móveis.
Histórico Compartilhado: Utiliza o mesmo arquivo de log criptografado que o CLI.
Iniciando o PWA
Para iniciar a interface web, execute o script lançador do seu sistema operacional:
Windows: passforge_pwa.bat
Linux/macOS: passforge_pwa.sh
[!IMPORTANT]
Reforço de Segurança (v34+): O PWA agora utiliza um manipulador SecureStaticFiles que bloqueia explicitamente o acesso do navegador a arquivos-fonte Python, logs e chaves criptográficas. O acesso ao histórico é protegido por um handshake interno de chave de API. A lógica do frontend também inclui wrappers defensivos para ativos CDN externos para garantir funcionalidade mesmo se um CDN estiver bloqueado.
[!TIP]
Disponibilidade da Construção: Os arquivos PWA estão incluídos nas distribuições Código Fonte e ZIP/Tarball. O PWA não está embutido no binário .exe de arquivo único.
O lançador instalará automaticamente as dependências necessárias (fastapi, uvicorn), iniciará um servidor local em http://127.0.0.1:8093 e abrirá seu navegador.