Detector de fortaleza de contraseña
Detecta la fortaleza, el valor de entropía y las debilidades comunes de la contraseña. Todas las detecciones se realizan localmente en su navegador.
Detección de fortaleza
- Longitud
- Letras minúsculas
- Letras mayúsculas
- Números
- Símbolos
- Secuencia
- Repeticiones
- Lista negra
- Modo de teclado
- Fecha
- Periódico
- ¡Se ve bien! No hay pistas para mejorar por ahora.
Modo de uso
Características funcionales
- 100% análisis local, priorizando la privacidad.
- Detección avanzada: patrones de teclado, fechas, repeticiones periódicas, secuencias, repeticiones, etc.
- Coincidencia de lista negra con normalización Leet (por ejemplo, Pa$$w0rd → password).
- Políticas flexibles: longitud mínima y requisitos de tipos de caracteres.
- Importar/exportar políticas JSON con un solo clic.
- Analizar en el detector con un solo clic
Preguntas frecuentes
La entropía se utiliza para estimar el tamaño del espacio de búsqueda basado en el conjunto de caracteres y la longitud. Si hay estructura (patrones, palabras), la entropía efectiva se reduce incluso si los bits originales parecen altos.
- Secuencias ordenadas, como abcde o 12345.
- Repeticiones largas del mismo carácter (por ejemplo, aaaa).
- Coincide con palabras débiles/patrones comunes en la lista negra personalizada.
- Patrones de movimiento en el teclado o secuencias de teclas adyacentes (por ejemplo, qwerty, asdf).
- Estilos de fecha (por ejemplo, YYYYMMDD, dd-mm-yyyy).
- Subcadenas repetidas (por ejemplo, abcabc, 121212).
- Normalización Leet antes de la coincidencia en la lista negra (por ejemplo, Pa$$w0rd → password).
El tiempo de cracking es solo una estimación aproximada. Los ataques reales utilizan diccionarios, máscaras y GPU. Las contraseñas cortas y con estructura evidente suelen ser mucho más débiles que su entropía aparente.
- Utiliza preferiblemente frases de acceso aleatorias más largas (más de 4 palabras) o contraseñas generadas por un gestor de contraseñas.
- Evita información personal, fechas y estructuras predecibles.
- Utiliza un gestor de contraseñas y habilita la autenticación multifactor (MFA) siempre que sea posible.
- No reutilices contraseñas; cámbialas solo si se filtran.
Cómo detectar la fortaleza de la contraseña a través de lenguajes de programación
A continuación, se muestra un ejemplo mínimo que utiliza bibliotecas maduras de la comunidad. Puedes elegir según tu pila técnica.
<!-- CDN -->
<script src="https://unpkg.com/[email protected]/dist/zxcvbn.js"></script>
<script>
const res = zxcvbn('P@ssw0rd!');
console.log(res.score, res.crack_times_display);
</script>
// npm i @zxcvbn-ts/core
import { zxcvbn } from '@zxcvbn-ts/core';
const result = zxcvbn('P@ssw0rd!');
console.log(result.score, result.guesses_log10);
composer require bjeavons/zxcvbn-php
<?php
require __DIR__ . '/vendor/autoload.php';
use ZxcvbnPhp\\Zxcvbn;
$zxcvbn = new Zxcvbn();
$res = $zxcvbn->passwordStrength('P@ssw0rd!');
echo $res['score'];
pip install zxcvbn
from zxcvbn import zxcvbn
res = zxcvbn('P@ssw0rd!')
print(res['score'], res['crack_times_display'])
go get github.com/nbutton23/zxcvbn-go
package main
import (
"fmt"
zxcvbn "github.com/nbutton23/zxcvbn-go"
)
func main() {
res := zxcvbn.PasswordStrength("P@ssw0rd!", nil)
fmt.Println(res.Score, res.Guesses)
}
# Add dependency
cargo add zxcvbn
use zxcvbn::zxcvbn;
fn main() {
match zxcvbn("P@ssw0rd!", &[]) {
Ok(estimate) => {
println!("score: {}", estimate.score()); // 0..4
if let Some(times) = estimate.crack_times() {
println!("offline: {:?}", times.offline_slow_hashing_1e4_per_second());
}
}
Err(err) => eprintln!("zxcvbn error: {err}"),
}
}
Nota: Estas bibliotecas proporcionan estimaciones de fuerza y patrones, que pueden diferir ligeramente de los elementos de detección de esta página.