Herramienta CLI desarrollada en Python para generar contraseñas aleatorias de forma segura mediante el módulo estándar secrets, tanto de forma interactiva como mediante argumentos desde la terminal.
Permite utilizar perfiles predefinidos, seleccionar distintos conjuntos de caracteres y consultar la entropía estimada y fortaleza de las contraseñas generadas.
- Generación de una o varias contraseñas aleatorias.
- Generación criptográficamente segura mediante el módulo
secretsde Python. - Longitud de contraseña configurable.
- Número de contraseñas configurable.
- Modo interactivo guiado.
- Ejecución mediante argumentos CLI.
- Perfiles predefinidos para distintos escenarios de uso.
- Conjuntos de caracteres configurables mediante
--charset. - Generación segura excluyendo caracteres visualmente ambiguos.
- Estimación de entropía basada en longitud y tamaño del conjunto de caracteres.
- Clasificación de fortaleza de las contraseñas generadas.
- Visualización opcional de entropía y fortaleza mediante
--show-strength. - Validación automática de parámetros de entrada.
- Manejo de errores mediante excepciones.
- Proyecto organizado siguiendo estructura modular
src/. - Instalación como paquete mediante
pyproject.toml. - Tests automatizados con
pytest.
Proyecto organizado siguiendo una estructura modular:
Password_Generator/
├── src/
│ └── password_generator/
│ ├── __init__.py
│ ├── charsets.py
│ ├── cli.py
│ ├── generator.py
│ ├── profiles.py
│ └── strength.py
├── tests/
│ ├── __init__.py
│ ├── test_generator.py
│ └── test_strength.py
├── CHANGELOG.md
├── LICENSE.md
├── README.md
├── pyproject.toml
├── requirements.txt
└── main.py
cli.py→ interfaz interactiva, argumentos CLI y resolución de configuración.generator.py→ lógica de generación de contraseñas.profiles.py→ perfiles predefinidos de generación.charsets.py→ definición y configuración de conjuntos de caracteres.strength.py→ cálculo de entropía y clasificación de fortaleza.tests/→ pruebas automatizadas.
Clona el repositorio:
git clone https://github.com/Art-Phy/Password_Generator.git
cd Password_GeneratorCrea un entorno virtual:
python3 -m venv .venv
source .venv/bin/activateInstala el proyecto:
python3 -m pip install -e .password-generatorPermite generar una o varias contraseñas respondiendo a unas sencillas preguntas desde la terminal.
password-generator --length 20o su versión corta:
password-generator -l 20password-generator --length 20 --count 5o:
password-generator -l 20 -c 5La herramienta incluye perfiles predefinidos para distintos escenarios de uso.
| Profile | Longitud | Charset | Uso |
|---|---|---|---|
web |
16 | all |
Contraseña de uso general |
wifi |
24 | safe |
Contraseña Wi-Fi evitando caracteres ambiguos |
pin |
6 | numbers |
PIN numérico |
secure |
32 | all |
Contraseña de alta seguridad |
password-generator --profile webpassword-generator --profile wifipassword-generator --profile pinpassword-generator --profile secureLos valores definidos por un perfil pueden sobrescribirse mediante argumentos CLI.
Por ejemplo, generar un PIN de 8 dígitos:
password-generator --profile pin --length 8O utilizar el perfil Wi-Fi con otro conjunto de caracteres:
password-generator --profile wifi --charset alphanumericEl argumento --charset permite seleccionar qué tipo de caracteres pueden utilizarse durante la generación.
| Charset | Descripción |
|---|---|
all |
Letras minúsculas, mayúsculas, números y símbolos |
letters |
Letras minúsculas y mayúsculas |
lowercase |
Solo letras minúsculas |
uppercase |
Solo letras mayúsculas |
numbers |
Solo números |
alphanumeric |
Letras y números |
safe |
Todos los tipos de caracteres excluyendo caracteres visualmente ambiguos |
Ejemplo:
password-generator --charset letters --length 20Generar una contraseña alfanumérica:
password-generator --charset alphanumeric --length 24Generar una contraseña utilizando el conjunto seguro:
password-generator --charset safe --length 24El charset safe excluye caracteres que pueden confundirse visualmente:
O 0 I l 1 | / \ ' " `
La versión v1.4.0 incorpora estimación de entropía y clasificación de fortaleza para las contraseñas generadas.
Para mostrar esta información utiliza:
password-generator --profile secure --show-strengthEjemplo de salida:
<generated-password>
Entropy: 209.8 bits
Strength: Very Strong
También puede combinarse con cualquier longitud, perfil o conjunto de caracteres:
password-generator \
--charset safe \
--length 24 \
--show-strengthLa fortaleza se clasifica en cuatro niveles:
| Entropía estimada | Clasificación |
|---|---|
| Menos de 40 bits | Weak |
| 40 - 59.9 bits | Medium |
| 60 - 79.9 bits | Strong |
| 80 bits o más | Very Strong |
La entropía se estima teniendo en cuenta la longitud solicitada y el tamaño real del conjunto de caracteres utilizado durante la generación.
Note
La estimación de entropía está diseñada para las contraseñas aleatorias generadas por esta herramienta a partir de un conjunto conocido de caracteres.
No pretende funcionar como un analizador universal de contraseñas creadas manualmente por usuarios.
Los perfiles, conjuntos de caracteres, longitud y análisis de fortaleza pueden combinarse libremente.
Contraseña Wi-Fi de 32 caracteres:
password-generator \
--profile wifi \
--length 32PIN de 8 dígitos mostrando su fortaleza:
password-generator \
--profile pin \
--length 8 \
--show-strengthGenerar cinco contraseñas seguras:
password-generator \
--charset safe \
--length 24 \
--count 5Generar tres contraseñas alfanuméricas mostrando su entropía:
password-generator \
--charset alphanumeric \
--length 20 \
--count 3 \
--show-strengthPara consultar todos los argumentos disponibles:
password-generator --helpEjecutar todos los tests:
pytestLa suite cubre, entre otros:
- Generación individual de contraseñas.
- Generación múltiple.
- Validación de parámetros.
- Exclusión de caracteres ambiguos.
- Cálculo de entropía.
- Clasificación de fortaleza.
- Valores límite de las distintas clasificaciones.
- Lenguaje: Python
secretsstringargparsedataclassesmath- Packaging mediante
pyproject.toml - Testing:
pytest
- Modular project structure
- Automated testing
- Installable package
- Interactive mode
- CLI arguments
- Cryptographically secure password generation
- Character set customization
- Exclude ambiguous characters
- Predefined password profiles
- Password strength indicator
- Clipboard support
- Export generated passwords
- Custom user-defined profiles