Compruebe patrones débiles comunes en una contraseña
Una contraseña puede parecer compleja y, aun así, seguir un patrón que las herramientas de adivinación prueban al principio.
Ejecutar — gratis
Este comprobador detecta atajos especialmente habituales: recorridos por teclas vecinas, caracteres o bloques de texto repetidos y palabras conocidas disfrazadas con sustituciones, como usar cero en lugar de la letra o. Realiza un análisis local determinista y no consulta ninguna base de datos real de filtraciones. El resultado explica cada patrón detectado sin presentar la ausencia de coincidencias como prueba de seguridad.
Conozca qué abarca la comprobación de patrones comunes
Este comprobador se centra en tres familias de elecciones que suelen emplearse para crear una contraseña fácil de recordar, pero visualmente recargada. Un recorrido de teclado sigue teclas consecutivas, por ejemplo, a lo largo de la fila numérica o de una fila de letras QWERTY. La repetición comprende tanto un carácter escrito al menos tres veces como bloques de varios caracteres copiados justo a continuación. La comprobación de diccionario revierte sustituciones conocidas, elimina separadores y busca un pequeño conjunto integrado de palabras que los atacantes suelen priorizar. Por ejemplo, cambiar una a por una arroba o una o por un cero no vuelve impredecible una palabra conocida. La salida indica la categoría y el fragmento coincidente para que una aplicación ofrezca una orientación concreta en vez de un rechazo ambiguo. Una categoría genera un riesgo medio por patrones; dos o más generan un riesgo alto. Esta etiqueta solo describe los patrones admitidos, no la seguridad completa ni la fortaleza matemática de la contraseña.
Interprete con prudencia un resultado sin coincidencias
Un resultado bajo significa que no apareció ninguno de los patrones implementados por este comprobador. No significa que la contraseña sea fuerte, única, privada o inexistente en filtraciones históricas. La capacidad evita deliberadamente bases de datos de filtraciones, tanto en línea como descargadas, por lo que `breach_database_checked` siempre es false. Tampoco calcula entropía, modela el conjunto completo de reglas de un atacante, comprueba la reutilización entre cuentas ni evalúa el sistema que almacena la contraseña. Un nombre corto, una palabra de diccionario poco frecuente, una fecha o una referencia personal pueden eludir estas pruebas fijas y seguir siendo fáciles de adivinar. Considere el resultado como una señal específica dentro de una política por capas. Prefiera credenciales largas generadas al azar o frases realmente inconexas, evite la reutilización cuando sea posible, incorpore límites de intentos y autenticación multifactor, y almacene las credenciales con una función moderna de derivación de contraseñas. La recomendación de un resultado limpio mantiene este límite y no concede un certificado engañoso. Así, los equipos pueden usar la herramienta como diagnóstico preciso y no como medidor universal de fortaleza.
Ofrezca comentarios claros y respetuosos con la privacidad
La respuesta está estructurada para formularios de registro, pantallas de cambio de contraseña, formación en seguridad y herramientas locales de políticas. `common_pattern_detected` permite tomar una decisión sencilla en la interfaz, mientras que `patterns` aporta la categoría, el fragmento coincidente y una explicación breve. Así, la interfaz puede informar de una secuencia de teclado o de sustituciones que todavía revelan una palabra común. Evite registrar la entrada, los fragmentos coincidentes o la respuesta completa en las analíticas de producción, porque incluso una parte de una contraseña es información sensible. Ejecute la versión gratuita del navegador cuando necesite una respuesta local inmediata o llame a la API por $0.002 por solicitud para integrar estas reglas deterministas. Una contraseña vacía produce un error de entrada, no un resultado de riesgo bajo, lo que evita confundir un campo ausente con una credencial segura. Como el algoritmo usa tablas fijas sin red, aleatoriedad, reloj ni estado compartido, entradas idénticas generan salidas idénticas. Esta estabilidad facilita probar las políticas y la marca explícita sobre filtraciones mantiene veraz la descripción del producto.
Qué puede hacer con ella
Explique un rechazo durante el registro
Indique si la candidata contiene un recorrido de teclado, una repetición o una sustitución fácil de revertir, en lugar de devolver un fallo de política sin explicación.
Revise ejemplos de políticas de contraseñas
Pruebe las credenciales de muestra de las guías internas y retire las que solo parecen complejas por usar símbolos y dígitos previsibles.
Añada orientación local específica
Ejecute las mismas pruebas deterministas en el navegador sin enviar la candidata a un servicio de filtraciones ni afirmar que no existe una coincidencia histórica.
Preguntas frecuentes
¿Consulta una base de datos real de contraseñas filtradas?
No. El algoritmo solo aplica reglas locales fijas y cada respuesta indica que no se consultó ninguna base de datos de filtraciones.
¿Qué patrones de teclado detecta?
Detecta secuencias de al menos cuatro teclas consecutivas, en ambos sentidos, en la fila numérica QWERTY y en las tres filas principales de letras.
¿Qué clases de repetición marca?
Marca un carácter repetido al menos tres veces y bloques de texto de entre dos y ocho caracteres repetidos inmediatamente.
¿Un resultado bajo demuestra que mi contraseña es fuerte?
No. Solo significa que no se detectaron las familias implementadas; no mide entropía, unicidad, referencias personales ni exposición en filtraciones.
¿Qué sucede si la contraseña está vacía?
La solicitud falla con un error de entrada no válida para que un valor ausente no se interprete como un resultado limpio.
¿Cuánto cuesta la comprobación mediante la API?
Cada solicitud correcta a la API cuesta $0.002. La versión del navegador puede ejecutarse localmente sin llamar a un servicio de filtraciones.
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
curl -X POST https://api.kit.forhosting.com/security/password-breach-pattern-check \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"password":"P@ssw0rd123"}'const res = await fetch("https://api.kit.forhosting.com/security/password-breach-pattern-check", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"password": "P@ssw0rd123"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/security/password-breach-pattern-check",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"password": "P@ssw0rd123"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/security/password-breach-pattern-check", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"password":"P@ssw0rd123"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"password":"P@ssw0rd123"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/security/password-breach-pattern-check", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Ejemplo de solicitud
{
"password": "P@ssw0rd123"
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "security.password_breach_pattern_check",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |