Fortaleza de Contraseña
Analiza la fortaleza de una contraseña. Devuelve una puntuación, tiempo estimado de descifrado, sugerencias prácticas y detección de filtraciones. La contraseña nunca se registra ni almacena.
Endpoint
POST /api/v1/password/strength
Autenticación
Todas las solicitudes requieren una API key enviada mediante el header X-Api-Key.
Cuerpo de la Solicitud
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
password | string | Sí | Contraseña a analizar |
{
"password": "correct horse battery staple"
}
Respuesta
{
"score": 4,
"crackTimeDisplay": "centuries",
"crackTimeSeconds": 1.5768e16,
"guesses": 1.578e19,
"warning": "",
"suggestions": [],
"breached": false,
"breachCount": 0
}
Campos de la Respuesta
| Campo | Tipo | Descripción |
|---|---|---|
score | integer | Puntuación de fortaleza de 0 (más débil) a 4 (más fuerte) |
crackTimeDisplay | string | Tiempo estimado de descifrado en formato legible |
crackTimeSeconds | number | Tiempo estimado de descifrado en segundos (ataque offline) |
guesses | number | Número estimado de intentos requeridos |
warning | string | Mensaje de advertencia si la contraseña tiene una debilidad conocida |
suggestions | array | Lista de sugerencias para mejorar la contraseña |
breached | boolean | Si la contraseña ha aparecido en filtraciones de datos conocidas (vía HIBP) |
breachCount | integer | Número de veces que la contraseña fue encontrada en filtraciones (0 si no fue filtrada) |
Valores de Puntuación
| Puntuación | Significado | Descripción |
|---|---|---|
| 0 | Muy débil | Trivialmente adivinable -- contraseñas comunes, patrones frecuentes |
| 1 | Débil | Aún muy adivinable -- protección solo contra ataques limitados |
| 2 | Aceptable | Algo adivinable -- protección moderada |
| 3 | Fuerte | Difícilmente adivinable -- buena protección |
| 4 | Muy fuerte | Muy difícilmente adivinable -- excelente protección |
Detección de Filtraciones
La verificación de filtraciones utiliza la API de contraseñas de Have I Been Pwned con k-anonymity. Solo los primeros 5 caracteres del hash SHA-1 se envían a la API -- la contraseña completa nunca sale del servidor. Un resultado breached: true significa que la contraseña ha aparecido en al menos una filtración de datos conocida y no debería utilizarse.
Ejemplo
curl -X POST \
-H "X-Api-Key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"password": "correct horse battery staple"}' \
"https://api.iqxlookup.neivi.es/api/v1/password/strength"
Notas
- Las contraseñas se analizan en memoria y nunca se persisten ni registran
- La puntuación considera patrones comunes, palabras de diccionario, secuencias de teclado, caracteres repetidos y sustituciones l33t
- La estimación de tiempo de descifrado asume un escenario de ataque offline sin limitación de intentos