Saltar al contenido
nearnull

Generador de Contraseñas

Generá contraseñas aleatorias fuertes con tus propias reglas de largo y caracteres, y mirá su entropía. Funciona enteramente en tu navegador: no se envía nada a ningún servidor.

Opciones
Tipos de caracteres

Deja afuera 0, O, 1, l e I, que son fáciles de confundir.

Contraseñas
Excelente 130 bits de entropía · 90 caracteres posibles

Elegí al menos un tipo de caracter

Cómo funciona este generador

Cada caracter sale del generador de números aleatorios criptográfico de tu navegador, la misma fuente que se usa para las claves de TLS, y no de Math.random. Los sorteos que caerían fuera de un múltiplo entero del tamaño del alfabeto se descartan y se vuelven a tirar, así ningún caracter es ni un poco más probable que otro: un sesgo sutil acá es lo que vuelve más adivinables contraseñas que por lo demás son largas. No se genera nada en un servidor, no se registra nada y no se envía nada a ningún lado. Recargá la página y las contraseñas que viste desaparecen para siempre.

¿Cuánta entropía alcanza?

La entropía mide cuántos intentos necesita quien ataca, en promedio, expresado en bits: cada bit extra duplica ese número. Depende solo del largo y del tamaño del conjunto de caracteres, nunca de si una contraseña 'parece' aleatoria.

< 40 bits

Adivinable por un ataque offline en minutos. No sirve para nada.

40 - 59 bits

Aguanta ataques casuales, no una base de contraseñas filtrada.

60 - 79 bits

Un objetivo razonable para una cuenta que te importa.

80+ bits

Fuera del alcance de la fuerza bruta con el hardware actual y el previsible.

El número que muestra esta herramienta es una cota superior: con 'al menos uno de cada tipo' activado, los caracteres garantizados restringen un poco el espacio. La diferencia es una fracción de bit en largos normales, y la opción vale la pena cuando un sitio impone reglas de composición.

Ejemplos

Generar bien una contraseña en código significa usar la fuente aleatoria criptográfica, no la de propósito general:

JavaScript
const bytes = new Uint32Array(1);
crypto.getRandomValues(bytes);
// reject and redraw above the largest multiple of the alphabet size
Python
import secrets, string

alphabet = string.ascii_letters + string.digits
"".join(secrets.choice(alphabet) for _ in range(20))
Java
SecureRandom random = new SecureRandom();
int index = random.nextInt(alphabet.length());
Go
import "crypto/rand"

n, _ := rand.Int(rand.Reader, big.NewInt(int64(len(alphabet))))
PHP
$index = random_int(0, strlen($alphabet) - 1);
Shell
LC_ALL=C tr -dc 'A-Za-z0-9' < /dev/urandom | head -c 20

Casos de uso

Cuentas de servicio y credenciales de API

Las credenciales entre máquinas nunca las tipea una persona, así que no hay razón para que sean cortas ni memorizables. Generá el string más largo que acepte el otro sistema y guardalo en un gestor de secretos.

Contraseñas de base de datos y de administración

Generá sin símbolos cuando la contraseña tenga que sobrevivir a un connection string, un archivo YAML o un comando de shell, donde las reglas de comillas la pueden romper.

Wi-Fi y frases compartidas

Activá 'excluir caracteres ambiguos' para cualquier cosa que alguien vaya a leer de una pantalla o de una tarjeta impresa. Una contraseña que no se puede transcribir bien termina siendo reemplazada por otra más débil.

Cargar entradas en un gestor de contraseñas

Generá un lote, usá una, y dejá que el resto desaparezca al cerrar la pestaña. Útil cuando estás dando de alta varias cuentas de una sentada.

Preguntas frecuentes

¿Estas contraseñas se envían a un servidor?
No. Se generan en tu navegador con el JavaScript de esta página, usando el generador de números aleatorios integrado de Web Crypto. Este sitio es estático: no hay backend que pueda recibirlas, y tampoco se guarda nada en tu navegador.
¿De qué largo debería ser una contraseña?
Con los cuatro tipos de caracteres activados, 16 caracteres te dan unos 105 bits de entropía, cómodamente fuera del alcance de la fuerza bruta. Por debajo de 12 caracteres empezás a depender de que quien ataca no tenga una copia offline rápida del hash. Si un sitio permite más, que sea más larga no te cuesta nada cuando la tipea un gestor de contraseñas.
¿Es mejor una contraseña aleatoria o una frase?
Para todo lo que complete un gestor de contraseñas, la aleatoria: es más corta para la misma entropía. Para el puñado de contraseñas que tenés que escribir de memoria, como el login de tu dispositivo o la contraseña maestra del gestor, una frase de varias palabras aleatorias es mucho más fácil de recordar con una fuerza comparable.
¿Por qué se excluyen las comillas y las barras invertidas de los símbolos?
Porque son justo las que rompen una contraseña después de que ya la guardaste. Una comilla o una barra invertida pegada en un comando de shell, un connection string, un archivo YAML o una importación de CSV se interpreta en vez de guardarse. Dejarlas afuera cuesta alrededor de medio bit por caracter y elimina toda una clase de fallas.
¿'Al menos uno de cada tipo' debilita la contraseña?
Muy levemente, porque descarta las combinaciones que casualmente omiten un tipo. Con 16 caracteres la diferencia es bastante menos de un bit, que no es nada al lado del beneficio de pasar las reglas de composición a la primera. La entropía que se muestra es la cifra sin restricción, así que es una cota superior.
¿Puedo obtener la misma contraseña dos veces?
Solo por casualidad, y con cualquier largo razonable esa casualidad es despreciable: no se guarda ni se reutiliza nada entre generaciones. Cada caracter de cada contraseña es un sorteo nuevo.