Generador de contraseñas
87 caracteres entre los que elegir
Generada en tu navegador · nunca se envía ni se guarda
Una contraseña fuerte es una contraseña larga sacada al azar. Veinte caracteres del conjunto completo de 87 son unos 129 bits de entropía; ocho con una @ sustituida y una exclamación al final siguen exactamente el patrón que el software de descifrado prueba primero. El mismo sorteo produce una frase de cinco palabras, un PIN, o un token en hex, Base32, Base58, Base62 o como UUID.
Cómo generar una contraseña
El número bajo el medidor es entropía en bits, y mide el generador, no la cadena que salió. Esa distinción importa: esta herramienta sabe que la contraseña se ha elegido uniformemente al azar de un conjunto de tamaño conocido, así que log2(conjunto^longitud) es exactamente correcto. Un comprobador que mira una contraseña inventada por alguien solo puede adivinar, y le dará encantado a «Verano2024!» una nota que no se ha ganado. El tiempo estimado de descifrado supone un ataque sin conexión a diez mil millones de intentos por segundo, que es más o menos una GPU moderna contra una base de datos mal cifrada: pesimista a propósito.
Los conjuntos de caracteres son lo que permite que un solo formulario haga el trabajo de varios, y el modo PIN es esa misma idea hecha explícita: solo dígitos, de tres a doce, con los ceros a la izquierda conservados. Esto último importa más de lo que parece, porque un generador que se come un cero inicial elimina una décima parte de los valores posibles de un PIN de cuatro cifras. Los PIN elegidos por personas se agrupan muchísimo — 1234, 1111, 0000 y los años de nacimiento que empiezan por 19 cubren una proporción alarmante de los PIN reales — así que sortear uno vale los dos clics. Un PIN es débil por construcción de todas formas: cuatro dígitos son diez mil posibilidades, suficiente donde algo limita los intentos e inútil donde un atacante prueba libremente.
En el otro extremo, un secreto que solo tiene que leer una máquina puede ser tan largo y feo como quieras. El objetivo habitual para una clave de API o un token de sesión son 128 bits, que veinte caracteres del conjunto completo superan con margen. Solo letras y dígitos si el valor tiene que sobrevivir a una URL o a un intérprete de comandos sin escapes; el conjunto de símbolos es la parte que da problemas en tránsito. Los alfabetos con nombre hacen ese trabajo de forma explícita: hex lleva cuatro bits por carácter, base32 cinco, base58 y base62 algo menos de seis, y un UUID versión 4 unos fijos 122. Treinta y dos caracteres hex son el objetivo de 128 bits escrito como la mayoría de las API esperan recibirlo, y base58 es el que hay que elegir cuando una persona tiene que leer el valor en voz alta, porque deja fuera el 0, la O, la I y la l.
Las palabras son la misma aritmética un nivel más arriba, y son el modo para el puñado de contraseñas que tecleas a mano en lugar de pegar. Cada palabra vale log2 del tamaño de la lista: esta página saca de unas 48.500 palabras inglesas de cuatro letras o más, que son 15,5 bits cada una, así que cinco palabras son unos 78 bits y seis son 93. La lista está en inglés, y eso es deliberado: la entropía es una propiedad del sorteo y no de si reconoces las palabras, así que cinco palabras te dan los mismos 78 bits las entiendas o no. Lo que el modo de palabras compra es que puedas recordarlas, y esa es la parte que se pierde si no hablas el idioma; si no puedes pronunciar la frase, coge veinte caracteres al azar y guárdalos en el gestor. Diceware construyó la idea alrededor de una lista de 7.776 palabras y dados físicos, a 12,9 bits por palabra; aquí el sorteo es el mismo procedimiento con crypto.getRandomValues en lugar de los dados. El separador y las mayúsculas no añaden nada que un atacante no dé por supuesto. El número final es la excepción y el medidor lo cuenta: se sortea al azar entre 10 y 99, que son log2(90) de verdad, unos 6,5 bits.
La longitud casi siempre es la palanca más barata. Pasar de 62 caracteres en el conjunto a 87 compra alrededor de medio bit por carácter, mientras que cuatro caracteres más compran casi veinticuatro. Por eso la guía actual del NIST sube la longitud mínima y quita las reglas de composición, y no al revés.
Para qué la usa la gente
- Cambiar una contraseña que ha aparecido en una filtración
- Sortear un PIN de cuatro o seis cifras permitiendo solo dígitos
- Sacar una frase de cinco palabras para la única contraseña que tecleas a mano
- Generar una clave de API de 32 caracteres hex o un token base58 que alguien pueda leer en voz alta
- Rellenar una entrada del gestor de contraseñas para una cuenta nueva
- Cumplir la política de un sitio que exige un símbolo y una mayúscula
Preguntas
Ni lo uno ni lo otro. La genera tu navegador con crypto.getRandomValues, el generador criptográfico del propio sistema operativo, y vive en una variable hasta que el siguiente sorteo la sustituye. No se escribe en disco, ni en una cookie, ni en almacenamiento local, y desconectarte de la red deja la herramienta funcionando.
Dieciséis caracteres es un suelo razonable y veinte es cómodo. A partir de unos treinta ya has pasado el punto en el que la longitud es el eslabón débil.
Ayudan, pero menos de lo que se cree. Añadir cuatro caracteres de longitud compra más entropía que añadir el conjunto de símbolos. Úsalos donde un sitio los exija.
No. El sentido de una contraseña generada es que sea única de una cuenta, para que una filtración en un sitio no abra otro. Para eso está un gestor de contraseñas.
Sí, y vale igual para las palabras que para los caracteres. Las personas que eligen «al azar» recurren a las mismas formas: una mayúscula delante, un dígito al final, un vocabulario pequeño de palabras relacionadas. Las herramientas de descifrado están construidas justo sobre esos hábitos.
No, está en inglés, y la entropía es exactamente la misma: cinco palabras son unos 78 bits reconozcas las palabras o no. Lo que se pierde es lo único que el modo de palabras aporta, que es poder recordarlas. Si la frase no te sale de la boca, usa veinte caracteres al azar y guárdalos en el gestor.
Con la misma entropía, idéntica: las matemáticas no distinguen. La ventaja de las palabras es que se recuerdan, lo que solo importa para las dos o tres contraseñas que tecleas a mano.
Cuatro es el mínimo práctico, cinco es cómodo y seis para una contraseña maestra o una clave de disco. Cada palabra de esta lista lleva 15,5 bits, así que cinco son unos 78.
Sí. Pon la longitud en cuatro o seis y desmarca todo menos 0-9. Los ceros a la izquierda se conservan, así que 0042 es un resultado posible.
De seis y no de cuatro siempre que el sistema lo permita: multiplica por cien los intentos necesarios, a cambio de dos pulsaciones más.
Porque todo el mundo tiene la misma idea. Años de nacimiento, dígitos repetidos y 1234 dominan los datos reales de PIN.
Sí. Apunta a 128 bits como mínimo, que veinte caracteres del conjunto completo superan. Quita los símbolos si el valor tiene que sobrevivir a una URL o a un intérprete de comandos.
Base32 o base58. Los dos dejan fuera los pares que se confunden; base58 quita el 0, la O, la I y la l exactamente por eso.
Un UUID versión 4 lleva 122 bits aleatorios, así que matemáticamente sí. En la práctica los UUID acaban en registros, impresos y en URL porque todo los trata como identificadores, así que un token hecho a propósito es la costumbre más segura.
log2(conjunto ^ longitud): el número de contraseñas igualmente probables que permiten esos ajustes. 60 bits es un suelo de trabajo; 80 pone un ataque sin conexión fuera del alcance práctico.
Porque cuesta distinguirlos en muchas tipografías. Quita más que esos cinco: l, o, I, O, 0 y 1, y la puntuación fácil de teclear mal o de perder al copiar — ()[]{};:,.<> — dieciocho caracteres en total, que llevan el conjunto completo de 87 a 69 y una contraseña de dieciséis caracteres de 103 bits a 98. Actívalo para una contraseña que vayas a leer en voz alta o teclear desde papel, y déjalo apagado para una que viva en el gestor.
Normalmente es un tope de longitud o un símbolo prohibido. Acórtala o desmarca el conjunto de símbolos, en vez de volver a algo que te hayas inventado.