¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!
password_generator — Un CLI de generador de contraseñas criptográficamente seguro y listo para producción, con 17 modos de generación, transparencia de entropía y amplias opciones de personalización. | Kitploit
Un CLI de generador de contraseñas criptográficamente seguro y listo para producción, con 17 modos de generación, transparencia de entropía y amplias opciones de personalización.
PassForge - Generador de contraseñas CLI todo en uno
Un generador de contraseñas CLI listo para producción, criptográficamente seguro, con 17 modos de generación, transparencia de entropía y amplias opciones de personalización.
Características
17 Modos de Generación
Generador
Comando
Descripción
Aleatorio
random, r
Contraseñas de caracteres aleatorios criptográficamente seguras
Frase de contraseña
phrase, p
Frases de contraseña basadas en palabras usando la lista de palabras EFF
Leetspeak
leet, l
Frases de contraseña con sustitución de caracteres (A→4, E→3, etc.)
PIN
pin
PINs numéricos de longitud configurable
Pronunciable
pronounce, pr
Contraseñas fáciles de pronunciar basadas en sílabas
UUID
uuid, u
UUIDs RFC 4122/9562 (v1, v4, v7) y Cortos (Base58)
Base64
base64, b64
Secretos codificados en base64 seguros para URL
Secreto JWT
jwt
Secretos de alta entropía para firma JWT (HS256/384/512)
Clave WiFi
wifi
Claves compatibles con WPA2/WPA3 (8-63 caracteres)
Clave de licencia
license
Claves de licencia de software (formato AXB, ej. 5x5)
Códigos de recuperación
recovery
Códigos de respaldo 2FA (numéricos o basados en palabras)
Código/Secreto OTP
otp
Códigos y secretos TOTP/HOTP con URI otpauth
Patrón
pattern
Contraseñas de patrón basadas en cuadrícula visual
Frase temática
phrase (personalizado)
Frases de contraseña de listas de palabras temáticas (animales, ciencia ficción, etc.)
Fonético OTAN
phonetic, ph
Convertir texto/contraseñas al alfabeto OTAN (Alpha-Bravo)
Analizar
analyze, check
Analizar la fortaleza de una contraseña existente
Historial
history
Ver el historial de generación de contraseñas (por defecto 10 entradas)
Perfiles predefinidos: Generación con un clic para casos de uso comunes (Fuerte, Memorable, Dev, etc.)
Menú interactivo: Menú completo para generación guiada
Lanzadores de plataforma: Scripts dedicados .bat y .sh con menús interactivos
Seguridad criptográfica: Usa el módulo secrets de Python para CSPRNG
Transparencia de entropía: Cálculo de entropía en tiempo real y análisis de fortaleza
Análisis zxcvbn: Verificación de fortaleza de contraseñas basada en patrones (ataques de diccionario, secuencias)
Portapapeles seguro: Borrado automático del portapapeles después de un tiempo configurable
Códigos OTP en vivo: Genera códigos TOTP actuales de 6/8 dígitos junto con el secreto
Códigos QR para OTP: Códigos QR escaneables para aplicaciones de autenticación
Salida con códigos de colores: Distinción visual entre tipos de caracteres
Exportación JSON: Salida legible por máquina para scripts
Modo equilibrado: Asegura una distribución legible (60% Letras, 20% Dígitos, 20% Símbolos)
Guía del Generador: Documentación completa para los 14 tipos de generadores.
Almacenamiento seguro de bóveda: El almacén dedicado maneja las claves criptográficas mediante .env (recomendado) o el heredado .vault.key con permisos de archivo estrictos 0600
Arquitectura de cero fugas: 🛡️ El código fuente y los registros están bloqueados del acceso del navegador en modo PWA; las entradas sensibles se enmascaran en modo CLI para el análisis de entropía.
Exportaciones con redacción: Exportación de historial con enfoque de seguridad, redacción automática de contraseñas por defecto
Interfaz sin sangría: Salida limpia y profesional alineada a la izquierda para todos los modos
Leetspeak inteligente: Sustitución probabilística para contraseñas más naturales y legibles
Validación robusta: Indicaciones interactivas con valores predeterminados y manejo recursivo de errores
Frontend PWA defensivo: 🛡️ Verificaciones de seguridad integradas para activos CDN para evitar fallos de inicialización.
Modificadores globales: Modos --easy-read y --easy-say
Modo paranoico: Recolección manual opcional de entropía mediante fluctuación de tiempo del teclado para máxima seguridad.
Instalación
root@kitploit:~
# Clonar el repositorio
git clone https://github.com/krishnakanthb13/password_generator.git
cd password_generator
# Instalar dependencias (colorama, cryptography, pyperclip, etc.)
pip install -r requirements.txt
Inicio Rápido
root@kitploit:~
# Generar una contraseña aleatoria de 20 caracteres
python main.py random -l 20
# Generar una frase de contraseña de 4 palabras
python main.py phrase -w 4 --capitalize
# Generar una frase de contraseña leetspeak
python main.py leet -w 3 -s _
# Generar con análisis de entropía
python main.py --show-entropy random -l 16
# Iniciar modo interactivo
python main.py --interactive
# Usar un perfil predefinido (Fuerte)
python main.py --preset strong --show-entropy
Ejemplos de Uso
Contraseñas Aleatorias
root@kitploit:~
# Contraseña básica de 16 caracteres
python main.py random
# 24 caracteres, solo letras
python main.py random -l 24 --no-symbols --no-digits
# Fácil de leer (sin 0/O, 1/l/I)
python main.py --easy-read random -l 20
# Con requisitos mínimos
python main.py random -l 16 --min-upper 2 --min-digits 2 --min-symbols 1
# Modo equilibrado (mayormente letras, menos símbolos)
python main.py random -l 24 --balanced
Frases de Contraseña
root@kitploit:~
# Frase de contraseña estándar de 4 palabras
python main.py phrase -w 4
# Capitalizada con separador de guion bajo
python main.py phrase -w 5 -s _ --capitalize
# Mayúsculas/minúsculas alternadas (Alta Entropía)
python main.py phrase -w 4 -s . --alternate
# Salida: aPpLe.bAnAnA.cHeRrY.dAtE
# Todo en mayúsculas con separador de guion (Alta Entropía)
python main.py phrase -w 4 -s . --uppercase
# Salida: APPLE-BANANA-CHERRY-DATE
# Versión leetspeak (Sustitución inteligente 50%)
python main.py leet -w 4 -s -
# Salida: 4PPl3.8@N@[email protected]
# Frase temática (usando 'animals.txt')
python main.py phrase -w 4 --capitalize --wordlist data/wordlists/animals.txt
# Salida: Tiger-Falcon-Shark-Wolf
# Analizar una contraseña existente
python main.py analyze "p@ssword123"
# Registrar en el historial
python main.py --log random -l 16
# Ver las últimas 10 entradas del historial (predeterminado)
python main.py history
# Ver todas las entradas del historial (descifradas sobre la marcha)
python main.py history --all
# Ver historial con contraseñas redactadas
python main.py history --redact
# Exportar historial (Redactado por defecto)
python main.py history --export backup.json
# Exportar historial (Texto plano - requiere precaución)
python main.py history --export secrets.csv --no-redact
# Salida JSON para scripts
python main.py --json jwt --bits 256
Referencia de Comandos
Indicador
Descripción
--preset
Usar un perfil de seguridad predefinido (strong, memorable, dev, pin, web, wifi, key)
-i, --interactive
Iniciar modo de menú interactivo
--paranoid
Habilitar modo paranoico (recolección manual de entropía)
--json
Salida en formato JSON
--show-entropy
Mostrar análisis de entropía (habilitado por defecto en los lanzadores)
--check-strength
Ejecutar análisis de patrón zxcvbn
-c, --clipboard
Copiar resultado al portapapeles
--confirm-copy
Solicitar confirmación para copiar resultado al portapapeles
--clipboard-timeout
Borrado automático del portapapeles después de N segundos (predeterminado: 30)
--log
Registrar contraseña en el historial (cifrada AES-128)
--no-color
Deshabilitar salida coloreada
--easy-read
Excluir caracteres ambiguos (0/O, 1/l/I)
--easy-say
Solo caracteres pronunciables (sin símbolos)
Opciones Específicas del Generador
Random (random, r)
Indicador
Predeterminado
Descripción
-l, --length
16
Longitud de la contraseña (4-1024)
--no-uppercase
-
Excluir letras mayúsculas
--no-lowercase
-
Excluir letras minúsculas
--no-digits
-
Excluir dígitos
--no-symbols
-
Excluir símbolos
--include
-
Caracteres adicionales para incluir
--exclude
-
Caracteres para excluir
--no-repeats
-
Sin caracteres repetidos
--min-upper
0
Mínimo de caracteres en mayúscula
--min-lower
0
Mínimo de caracteres en minúscula
--min-digits
0
Mínimo de dígitos
--min-symbols
0
Mínimo de símbolos
--balanced
-
Proporción equilibrada (60/20/20)
-n, --count
1
Número a generar
Passphrase (phrase, p)
Indicador
Predeterminado
Descripción
-w, --words
4
Número de palabras (2-64)
-s, --separator
-
Separador de palabras
--capitalize
-
Capitalizar cada palabra
--uppercase
-
Todas las palabras en mayúsculas
--alternate
-
Mayúsculas/minúsculas alternadas (aLtErNaTe)
--wordlist
-
Ruta a una lista de palabras personalizada
-n, --count
1
Número a generar
Leetspeak (leet, l)
Indicador
Predeterminado
Descripción
-w, --words
3
Número de palabras (2-64)
-s, --separator
-
Separador de palabras ( - _ . , )
-n, --count
1
Número a generar
PIN (pin)
Indicador
Predeterminado
Descripción
-l, --length
6
Longitud del PIN (4-64)
-n, --count
1
Número a generar
Pronounceable (pronounce, pr)
Indicador
Predeterminado
Descripción
-l, --length
12
Longitud de la contraseña (4-128)
-n, --count
1
Número a generar
UUID (uuid)
Indicador
Predeterminado
Descripción
--ver
4
Versión UUID (1, 4, 7)
--short
-
Formato corto (Base58)
--upper
-
Salida en mayúsculas (solo hexadecimal)
-n, --count
1
Número a generar
Base64 (base64, b64)
Indicador
Predeterminado
Descripción
-b, --bytes
32
Número de bytes aleatorios
--url-safe
-
Usar caracteres seguros para URL
JWT Secret (jwt)
Indicador
Predeterminado
Descripción
--bits
256
Longitud en bits (256, 384, 512)
--hex
-
Salida como cadena hexadecimal
WiFi Key (wifi)
Indicador
Predeterminado
Descripción
-l, --length
24
Longitud de la clave (8-63, predeterminado: 24)
--simple
-
Solo alfanumérico (sin símbolos)
License Key (license)
Indicador
Predeterminado
Descripción
--segments
4
Número de segmentos (2-64)
--segment-length
4
Caracteres por segmento (2-32)
Recovery Codes (recovery)
Indicador
Predeterminado
Descripción
-n, --count
10
Número de códigos (5-20, predeterminado: 10)
-l, --length
10
Longitud del código (dígitos o palabras, predeterminado: 10/3)
--words
-
Usar códigos basados en palabras
OTP Secret (otp)
Indicador
Predeterminado
Descripción
--digits
6
Longitud del código (6 u 8)
--period
30
Período de tiempo en segundos
--qr
-
Mostrar código QR en la terminal
Pattern (pattern)
Indicador
Predeterminado
Descripción
--grid
3
Tamaño de cuadrícula (ej. 3x3)
Phonetic (phonetic, ph)
Indicador
Predeterminado
Descripción
--text
-
Texto a convertir al alfabeto OTAN
-l, --length
8
Longitud de la secuencia aleatoria (4-64)
History (history)
Indicador
Predeterminado
Descripción
--last
10
Mostrar las últimas N entradas (1-100, predeterminado: 10)
--all, -a
-
Mostrar todas las entradas del historial (anula --last)
--search
-
Filtrar historial por palabra clave
--redact
-
Redactar contraseñas en la salida de terminal
--export
-
Exportar historial a un archivo (JSON/CSV)
--no-redact
-
No redactar contraseñas en la exportación (¡Precaución!)
--clear
-
Limpiar todas las entradas del historial
Guía de Entropía
PassForge proporciona un Informe de Entropía completo que incluye el tamaño del conjunto de caracteres, bits de Shannon y estimaciones de tiempo de fuerza bruta.
Entropía (bits)
Fortaleza
Caso de uso
< 28
Muy Débil
Nunca usar
28-36
Débil
Solo baja seguridad
36-60
Razonable
Cuentas estándar
60-80
Fuerte
Datos sensibles
80-128
Muy Fuerte
Sistemas de alta seguridad
> 128
Excelente
Infraestructura crítica
Nota: Para una explicación detallada de cada tipo de generador, consulta LITERATURE.md.
Estructura del Proyecto
root@kitploit:~
password_generator/
├── main.py # Punto de entrada
├── requirements.txt # Dependencias
├── src/
│ ├── __init__.py
│ ├── cli.py # Analizador de argumentos y banner
│ ├── command_handler.py # Enrutamiento de comandos
│ ├── interactive.py # Menú interactivo
│ ├── generators/ # Todos los generadores de contraseñas
│ │ ├── base.py # Clase base abstracta
│ │ ├── random_password.py # Generador de contraseñas aleatorias
│ │ ├── passphrase.py # Generador de frases de contraseña
│ │ ├── leetspeak.py # Generador de leetspeak
│ │ ├── pin.py # Generador de PIN
│ │ ├── pronounceable.py # Generador de contraseñas pronunciables
│ │ ├── uuid_token.py # Generador de tokens UUID
│ │ ├── base64_secret.py # Generador de secretos Base64
│ │ ├── jwt_secret.py # Generador de secretos JWT
│ │ ├── wifi_key.py # Generador de claves WiFi
│ │ ├── license_key.py # Generador de claves de licencia
│ │ ├── recovery_codes.py # Generador de códigos de recuperación
│ │ ├── otp.py # Generador OTP
│ │ ├── pattern.py # Generador de patrones
│ │ └── phonetic.py # Generador fonético OTAN
│ ├── security/
│ │ ├── entropy.py # Calculadora de entropía
│ │ ├── strength_checker.py # Integración zxcvbn
│ │ └── vault.py # Cifrado seguro del historial
│ ├── output/
│ │ ├── formatter.py # Salida con códigos de colores
│ │ ├── logger.py # Registro de historial
│ │ ├── clipboard.py # Manejo seguro del portapapeles
│ │ └── qrcode_gen.py # Generación de códigos QR para OTP
│ ├── config/
│ │ ├── loader.py # Cargador de configuración YAML/JSON
│ │ └── presets.py # Perfiles de seguridad predefinidos
├── data/
│ └── wordlists/ # Listas de palabras temáticas (animals.txt, biology.txt, etc.)
└── tests/
Pruebas
root@kitploit:~
# Ejecutar todas las pruebas
python -m pytest tests/ -v
# Ejecutar una clase de prueba específica
python -m pytest tests/test_generators.py::TestRandomPasswordGenerator -v
# Ejecutar con cobertura
python -m pytest tests/ --cov=src --cov-report=html
Todas las 53 pruebas unitarias cubren:
Los 15 modos de generador especializados
Calculadoras de entropía y fortaleza zxcvbn
Borrado automático del portapapeles y almacenamiento seguro
Lógica de generación de códigos QR ASCII
Carga de configuración y ajustes predefinidos
Configuración
PassForge admite archivos de configuración en formato YAML o JSON.
Ubicaciones de los archivos de configuración (buscados en orden):
./passforge.yaml o ./passforge.json
./.passforge.yaml o ./.passforge.json
~/.passforge/config.yaml o ~/.passforge/config.json
Consulta passforge.example.json para todas las opciones disponibles.
Compilación de Ejecutable Independiente
PassForge se puede compilar en un único ejecutable independiente usando PyInstaller.
Windows
root@kitploit:~
# Usando el script de compilación
passforge_build.bat
# O manualmente
pip install pyinstaller
pyinstaller --onefile --name passforge --console main.py
Linux/macOS
root@kitploit:~
# Usando el script de compilación
chmod +x passforge_build.sh
./passforge_build.sh
# O manualmente
pip install pyinstaller
pyinstaller --onefile --name passforge --console main.py
El ejecutable se creará en la carpeta dist/ (~7 MB, cero dependencias).
🌐 PassForge Web (Complemento PWA)
PassForge ahora incluye una interfaz web moderna y responsiva (PWA) que proporciona una forma visual de generar y gestionar contraseñas, manteniendo total paridad con la versión CLI.
Características Principales
Interfaz de barra lateral: Navegación sencilla entre todos los tipos de generadores.
Deslizadores visuales: Ajusta longitudes y conteos de palabras con deslizadores interactivos.
Soporte QR: Generación instantánea de códigos QR para compartir contraseñas o secretos OTP.
Modo oscuro/claro: Estética premium con cambio de tema según el sistema.
Instalable: Soporte para instalación PWA en Windows, Linux y móviles.
Historial compartido: Utiliza el mismo archivo de registro cifrado que la CLI.
Inicio de la PWA
Para iniciar la interfaz web, ejecuta el script lanzador para tu sistema operativo:
Windows: passforge_pwa.bat
Linux/macOS: passforge_pwa.sh
[!IMPORTANT]
Fortalecimiento de seguridad (v34+): La PWA ahora utiliza un controlador SecureStaticFiles que bloquea explícitamente el acceso del navegador a archivos fuente de Python, registros y claves criptográficas. El acceso al historial está protegido mediante un protocolo de enlace de clave API interna. La lógica del frontend también incluye envoltorios defensivos para activos CDN externos para garantizar la funcionalidad incluso si un CDN está bloqueado.
[!TIP]
Disponibilidad de compilación: Los archivos de la PWA están incluidos en las distribuciones de Código Fuente y ZIP/Tarball. La PWA no está incrustada en el binario de un solo archivo .exe.
El lanzador instalará automáticamente las dependencias necesarias (fastapi, uvicorn), iniciará un servidor local en http://127.0.0.1:8093 y abrirá tu navegador.
Licencia
Licencia GPL v3 - consulta LICENSE para más detalles.
Contribuciones
¡Las contribuciones son bienvenidas! Por favor, lee nuestras guías de contribución antes de enviar PRs.