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.
Deja afuera 0, O, 1, l e I, que son fáciles de confundir.
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.
Adivinable por un ataque offline en minutos. No sirve para nada.
Aguanta ataques casuales, no una base de contraseñas filtrada.
Un objetivo razonable para una cuenta que te importa.
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:
const bytes = new Uint32Array(1);
crypto.getRandomValues(bytes);
// reject and redraw above the largest multiple of the alphabet sizeimport secrets, string
alphabet = string.ascii_letters + string.digits
"".join(secrets.choice(alphabet) for _ in range(20))SecureRandom random = new SecureRandom();
int index = random.nextInt(alphabet.length());import "crypto/rand"
n, _ := rand.Int(rand.Reader, big.NewInt(int64(len(alphabet))))$index = random_int(0, strlen($alphabet) - 1);LC_ALL=C tr -dc 'A-Za-z0-9' < /dev/urandom | head -c 20Casos 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.