Generador de frases de contraseña

Genera frases de contraseña estilo Diceware con crypto.getRandomValues: 3-12 palabras de una lista de 1560, entropía real calculada y separador a elegir.

Entrada

De 3 a 12 palabras. Seis palabras dan unos 64 bits de entropía.

Longitudes habituales

Una frase de varias palabras se recuerda mucho mejor que ocho caracteres ilegibles y, aun así, resiste bastante más. Esta herramienta sortea cada palabra de una lista curada de 1560 términos usando crypto.getRandomValues con muestreo por rechazo, de modo que todas tienen exactamente la misma probabilidad de salir. La entropía que aparece debajo del resultado no es una etiqueta de marketing: se calcula en ejecución a partir del tamaño real de la lista, así que la herramienta nunca puede exagerar su propia fuerza.

¿Qué es una frase de contraseña?

Una frase de contraseña (passphrase) es una contraseña formada por varias palabras independientes unidas por un separador, en la línea del método Diceware. En lugar de exigir símbolos y mayúsculas, apuesta por la longitud: cada palabra añadida multiplica el espacio de búsqueda. Con esta lista de 1560 palabras, cada una aporta 10,61 bits, de modo que seis palabras suman 63,6 bits y ocho llegan a 84,9 bits. Es justo el enfoque que recomienda NIST SP 800-63B: la longitud pesa más que la complejidad impuesta.

Cómo funciona el generador de frases de contraseña

Cada palabra se extrae de forma independiente de una lista de 1560 palabras, es decir log2(1560) ≈ 10,61 bits por palabra: seis palabras aportan unos 64 bits, y la cifra mostrada se calcula a partir del tamaño real de la lista en lugar de afirmarse sin más. El índice procede de crypto.getRandomValues con muestreo por rechazo: se descartan los valores por encima del mayor múltiplo exacto del tamaño de la lista, porque un módulo simple favorecería en silencio a las primeras palabras. Añadir un dígito suma los log2(10) bits del propio dígito más los log2(n) bits de a qué palabra le tocó, ya que la posición también se elige al azar. Es la idea de Diceware llevada al navegador y coincide con la postura de NIST SP 800-63B: la longitud importa más que exigir clases de símbolos.

Qué la distingue

Muestreo por rechazo sobre crypto.getRandomValues: reparto uniforme entre las 1560 palabras, sin el sesgo de módulo que introduce el resto de la división.
El dígito opcional se coloca en una posición aleatoria de la frase, así que aporta entropía de verdad en lugar de ser mero adorno.
La entropía se recalcula en ejecución desde la longitud real de la lista: si la lista cambia, la cifra cambia con ella y nunca queda inflada.
Separador configurable y capitalización opcional para superar validadores exigentes sin tocar el número de palabras.

Cómo usarlo

1

Elige cuántas palabras quieres: entre 3 y 12, con 6 por defecto (63,6 bits).

2

Selecciona el separador —guion, punto, espacio o guion bajo— según lo que acepte el formulario de destino.

3

Activa el dígito si el sitio exige un número; se insertará detrás de una palabra elegida al azar, no siempre al final.

4

Copia la frase y revisa el bloque de detalles: entropía total, bits por palabra, tamaño de la lista y combinaciones posibles.

Errores habituales

Creer que poner mayúscula inicial en todas las palabras refuerza la frase: no añade ni un bit, porque la transformación es fija y conocida. La opción existe solo para sitios que exigen una mayúscula.
Quedarse en 3 o 4 palabras: son 31,8 y 42,4 bits, insuficientes frente a un atacante que prueba claves sin conexión. Sube a 6 o más.
Retocar la frase a mano después de generarla (cambiar letras por números, recortar palabras): rompes el cálculo de entropía y el resultado deja de ser el que muestra la herramienta.

Ejemplos reales

6 palabras, separador guion, sin dígito -> meadow-lantern-quartz-harbor-nectar-orchard (63,6 bits)
4 palabras, separador punto, con dígito -> atlas.beacon7.marble.rocket (47,8 bits)
8 palabras, separador guion bajo, con mayúscula inicial -> Amber_Basil_Harbor_Marble_Pepper_Quartz_Rocket_Pelican (84,9 bits)

Ver también

  • Generador de contraseñas¿Necesitas un secreto por caracteres para un campo que rechaza espacios? Genera una contraseña.
  • Generador de UUID¿Buscas un identificador y no un secreto? Un UUID v4 es el formato adecuado.

Preguntas frecuentes

¿Cuántas palabras necesito de verdad?

Con 6 palabras obtienes 63,6 bits, suficiente para cuentas cotidianas protegidas además con doble factor. Para la clave maestra del gestor de contraseñas o el correo principal, sube a 8 palabras y 84,9 bits. Por debajo de 5 palabras (53 bits) la frase se queda corta frente a ataques sin conexión.

¿Poner las palabras en mayúscula inicial aumenta la seguridad?

No: cero bits adicionales. Capitalizar cada palabra es una transformación fija que cualquier atacante puede aplicar a su lista de candidatas, así que el espacio de búsqueda sigue siendo el mismo. La casilla está ahí únicamente para pasar formularios que rechazan contraseñas sin mayúsculas.

¿Por qué el dígito no va siempre al final?

Porque una posición fija sería predecible y el atacante la descontaría de inmediato. Aquí se sortean dos cosas independientes: el dígito (log2 10 = 3,32 bits) y la palabra a la que se pega (log2 del número de palabras). Con 6 palabras eso suma unos 5,9 bits reales al total.

¿Por qué habla de 10,61 bits por palabra y no de una cifra redonda?

Porque 10,61 es exactamente log2(1560), el logaritmo del tamaño real de la lista. La cifra no está escrita a mano en el código: se calcula cada vez a partir de la longitud efectiva de la lista de palabras, de manera que la herramienta no pueda atribuirse una fuerza que no tiene si la lista crece o se recorta.