Python 3.9+ Flask API PEP 506 CSPRNG

Generación segura, sin atajos.

Contraseñas de alta entropía impulsadas por secrets. Un recorrido transparente desde una práctica de consola hasta una arquitectura web moderna.

Motor CSPRNG

Generador de contraseñas

20 caracteres — bits
Generando una clave segura...

Generada con una fuente criptográficamente segura

Fortaleza estimada Calculando...

Estimación matemática para selección uniforme del alfabeto activo (10¹¹ intentos/s).

12 mín. 48 88 128 máx.
Tipos de caracteres incluidos
¿Ya la generaste? Revisa cómo almacenarla de forma segura →
Custodia y almacenamiento

Cómo proteger tu contraseña

PassForge no almacena claves. Tres pilares para resguardarlas con seguridad.

Bóveda Zero-Knowledge

Las contraseñas de alta entropía no se memorizan. Resguárdalas en una bóveda cifrada de conocimiento cero como Bitwarden, KeePassXC o el llavero biométrico de tu sistema.

Buenas prácticas

  • Clave única por cuenta: Aísla cada servicio para neutralizar filtraciones externas.
  • Cifrado de extremo a extremo: Tus credenciales se cifran antes de salir de tu equipo.
  • Higiene del portapapeles: Limpia el portapapeles tras copiar credenciales.

Qué evitar

  • Texto plano: Nunca en notas del teléfono, archivos .txt ni documentos compartidos.
  • Mensajería: No envíes contraseñas por chats ni a «mensajes guardados».
  • Patrones repetidos: No reutilices una clave base variando solo sufijos o números.
Fundamento técnico

Por qué secrets y nunca random

La diferencia entre una clave predecible y una criptográficamente segura reside en la fuente de entropía.

Educativa / Insegura random.choice()

PRNG de propósito general

Basado en Mersenne Twister (MT19937). Es determinista: basta observar 624 salidas consecutivas para reconstruir su estado interno y predecir todas las claves futuras.

  • Inadecuado para credenciales, llaves o tokens de sesión.
  • Diseñado para simulación y estadística, no para seguridad.
import random  # Estado interno predecible (no criptográfico)
Motor Criptográfico secrets.choice()

CSPRNG nativo del sistema operativo

secrets delega en el generador seguro del núcleo del sistema (/dev/urandom o BCryptGenRandom) para producir entropía verdaderamente impredecible.

  • Estándar oficial de Python (PEP 506) para credenciales sensibles.
  • Mezclado uniforme mediante secrets.SystemRandom().shuffle().
import secrets  # Entropía de grado criptográfico
Principio matemático: ampliar el alfabeto de símbolos en claves cortas no compensa el uso de un generador de aleatoriedad predecible.
Defensa en profundidad

Principios de seguridad

Recomendaciones esenciales alineadas con las directrices de NIST y CISA.

Longitud antes que adornos

La longitud expande el espacio de claves exponencialmente: 16 caracteres simples superan a 8 caracteres complejos.

Crecimiento exponencial

Cero reutilización

Una clave distinta por cuenta neutraliza ataques de credential stuffing ante filtraciones masivas.

Aislamiento de brechas

Bóvedas seguras

Usa gestores con cifrado local de conocimiento cero. Las claves se cifran en tu dispositivo antes de viajar.

Cero conocimiento

MFA y Passkeys

Activa autenticación en dos pasos con llaves FIDO2, Passkeys o TOTP; evita SMS por riesgo de SIM Swapping.

Segundo factor robusto
Código abierto y auditable

Arquitectura y ejecución local

Inspecciona y ejecuta cada capa del proyecto directamente en tu entorno.

PassForge en tu máquina

Mismo motor criptográfico en terminal y en la API REST de Flask.

terminal bash
# Ejecutar el generador interactivo por consola
python -m src.cli

Genera contraseñas criptográficas directamente desde la terminal sin dependencias externas.

Desarrollado con enfoque educativo y abierto por Josué Chacae. Ver perfil en GitHub →