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

Valor de entropía
Fortaleza:
Tiempo estimado de descifrado sin conexión (GPU de alta velocidad)
Tiempo estimado de descifrado en línea (con límite de velocidad)
Resultados de la detección
  • Longitud
  • Letras minúsculas
  • Letras mayúsculas
  • Números
  • Símbolos
  • Secuencia
  • Repeticiones
  • Lista negra
  • Modo de teclado
  • Fecha
  • Periódico
Configuración de políticas
Separadas por comas, sin distinción entre mayúsculas y minúsculas. Admite normalización Leet (por ejemplo, Pa$$w0rd → password).
Sugerencias de optimización
Nota de privacidad: Las detecciones se realizan completamente en tu navegador local y la contraseña no se sube.

Modo de uso

Analiza la contraseña localmente y obtén sugerencias de optimización ejecutables.
1) Ingresa o pega la contraseña; los resultados se actualizarán en tiempo real.
2) Ajusta las políticas según sea necesario (longitud mínima/requisitos de tipo de carácter).
3) Agrega palabras débiles comunes a la lista negra para ayudar en la identificación (se admite la normalización Leet).
4) Utiliza la importación/exportación para compartir la configuración de políticas.

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

Comparación de contraseñas

Resultado de la comparación
Entropía (A): Entropía (B):

Preguntas frecuentes

¿Se subirá mi contraseña?
No. Todo el análisis se realiza solo en tu navegador.
¿Qué significa “entropía”?
Aproximadamente, indica cuántos intentos se necesitan para adivinarla. La fuerza real disminuye cuando hay estructura.
¿Por qué la puntuación ha bajado?
Patrones como secuencias, fechas o patrones de teclado reducen la fuerza.

Informe

El informe no incluye el texto de tu contraseña, solo incluye indicadores y configuraciones.

Conocimiento relacionado
Entropía

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.

Explicación de los detectores
  • 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).
Nota sobre el tiempo de cracking

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.

Mejores prácticas
  • 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.

JavaScript
<!-- 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>
                        
Node.js
// npm i @zxcvbn-ts/core
import { zxcvbn } from '@zxcvbn-ts/core';

const result = zxcvbn('P@ssw0rd!');
console.log(result.score, result.guesses_log10);
                        
PHP
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'];
                        
Python
pip install zxcvbn
                        
from zxcvbn import zxcvbn

res = zxcvbn('P@ssw0rd!')
print(res['score'], res['crack_times_display'])
                        
Go
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)
}
                        
Rust
# 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.