Generador de contraseñas

Criptográficamente seguro // v1.0

Configuración

Rango: 4-64

Rango: 1-10

Conjuntos de caracteres
Buffer_Salida

Esperando entrada...

¿Qué es un generador de contraseñas aleatorias?

Un generador de contraseñas aleatorias construye una contraseña tomando caracteres con probabilidad uniforme dentro de los conjuntos que permitas. RandomHub usa la Web Crypto API criptográficamente segura del navegador (window.crypto.getRandomValues) y muestreo por rechazo para evitar el sesgo por módulo — la misma fuente de aleatoriedad en la que se apoyan los gestores de contraseñas líderes. Tú decides la longitud (de 4 a 64 caracteres), los conjuntos activos (mayúsculas, minúsculas, dígitos, símbolos) y si excluyes caracteres visualmente ambiguos (l, 1, I, O, 0). Toda la generación ocurre en tu navegador; la contraseña no viaja por la red ni queda en ningún log.

¿Para quién es este generador?

🔐

Personas con cuidado por la privacidad

Gestionas tus credenciales tú mismo y prefieres un generador que se ejecuta en cliente y se puede auditar, en lugar de la caja negra de un proveedor.

🛠️

Admins de IT y sistemas

Cuentas de servicio, passphrases para claves SSH, semillas de bases de datos, credenciales puntuales para nuevos miembros del equipo. Con tope de 64 caracteres cubres casi todo, salvo claves de plena entropía.

👨‍💻

Desarrolladores

Secretos desechables para entornos de dev, fixtures de prueba, flujos de auth simulados, datos de ejemplo — cuando abrir una pestaña pesa menos que invocar `pwgen` o `openssl rand`.

👨‍👩‍👧

Padres y madres

Cuenta para un peque que nunca tuvo que recordar una contraseña fuerte. Genera con caracteres ambiguos excluidos para que se pueda dictar y teclear sin equivocaciones.

🧰

Self-hosters

Levantas Vaultwarden, Nextcloud, Postgres o un panel admin propio y necesitas credenciales nuevas antes de conectar el gestor. Generas, pegas, sigues.

🧑‍💼

Cuando el generador del gestor falla

Algunos gestores esconden su generador en menús o extensiones que no responden justo en el momento del registro. Una herramienta independiente y fiable elimina esa fricción exactamente entonces.

Por qué este generador

01

Fuente aleatoria criptográfica

Los bytes vienen de window.crypto.getRandomValues — la Web Crypto API, la misma que usan 1Password, Bitwarden y los navegadores modernos. Math.random no aparece en ningún punto del flujo.

02

Sin sesgo por módulo

El enfoque ingenuo `random % poolSize` favorece índices bajos cuando el pool no divide la fuente de forma exacta. Aplicamos muestreo por rechazo sobre Uint32 para que cada carácter tenga la misma probabilidad.

03

Medidor de fuerza en bits reales

Entropía = longitud × log₂(tamaño del pool), la fórmula de manual. Tramos: débil <40 bits, aceptable 40–63, fuerte 64–95, fortaleza 96+. Se ve al instante si la configuración alcanza el objetivo.

04

Se queda en tu navegador

Cuando generas, no se hace ninguna petición de red. No hay logs, ni almacenamiento, ni envío, ni análisis. Abre las DevTools, pulsa Generar — la pestaña Red sigue muda.

Escenarios habituales con ejemplos

Contraseña nueva para una web bancaria

Te registras en un servicio bancario o público que no admite símbolos. Longitud 20, conjuntos Mayús / Minús / Dígitos, símbolos desactivados, caracteres ambiguos excluidos — la contraseña se lee bien en un recibo impreso.

Ajustes: longitud 20, Mayús+Minús+Dígitos, Excluir ambiguos. Ejemplo: «Tyek5JWXcbgjLE2EH3vk» — 20 × log₂(58) ≈ 117 bits, dentro de la zona fortaleza, alfanumérico estricto.

Passphrase para una clave SSH

Tu clave privada necesita una passphrase que escribes de memoria una vez al día. Longitud 24, todos los conjuntos, ambiguos incluidos — entropía alta y legible. Guárdala en el gestor y deja de intentar memorizarla.

Ajustes: longitud 24, todos los conjuntos, Excluir ambiguos desactivado. Ejemplo: «K9$mZ#7vTq!4nL@8pR2&yX#W» — 24 × log₂(76) ≈ 150 bits. Más resistente que la propia clave a la que protege.

Cuenta de prueba desechable

Necesitas una contraseña para una cuenta temporal mientras desarrollas. Longitud 12, minúsculas + dígitos basta; la cuenta desaparece en una hora.

Ajustes: longitud 12, solo Minús+Dígitos. Ejemplo: «k7vmqr3z9fnp» — 12 × log₂(36) ≈ 62 bits. Tramo «aceptable», suficiente para una cuenta de 60 minutos.

Contraseña que dictas en un kiosco compartido

Una persona dicta y otra teclea. Excluye los caracteres ambiguos (la l minúscula, la I mayúscula, el 1, la O mayúscula, el 0) — desaparecen los errores de transcripción más comunes.

Ajustes: longitud 16, Mayús+Minús+Dígitos, Excluir ambiguos activado. Ejemplo: «RvkP4hgWmFu82tNz» — 16 × log₂(58) ≈ 94 bits. Casi en zona fortaleza, legible incluso en un sitio ruidoso.

Cómo usarlo

  1. 1.

    Definir la longitud

    De 4 a 64. 16 es un buen valor por defecto para la mayoría de cuentas; 24+ para passphrases SSH o cuentas root auto-alojadas.

  2. 2.

    Elegir conjuntos

    Activa Mayúsculas, Minúsculas, Dígitos, Símbolos. Cada conjunto activo agranda el pool y eleva la entropía por carácter. La salida garantiza al menos un carácter de cada conjunto activo.

  3. 3.

    Decidir sobre los ambiguos

    Desactivado (predeterminado): l, 1, I, O, 0 quedan dentro — un poco más de entropía. Activado: se filtran — la contraseña se dicta o se transcribe sin tropiezos.

  4. 4.

    Generar y copiar

    Botón Generar o Enter. Cada contraseña tiene su botón propio; «Copiar todo» cubre el caso de varias a la vez (1 a 10). «Mostrar / Ocultar» evita miradas indiscretas si generas en público.

Preguntas frecuentes

¿Este generador es realmente seguro?

La aleatoriedad sale de window.crypto.getRandomValues — la Web Crypto API, la misma fuente que utilizan 1Password, Bitwarden y los navegadores modernos para sus generadores. El muestreo por rechazo elimina el sesgo por módulo. La generación ocurre íntegramente en cliente: abre las DevTools, pulsa Generar, y verás que no hay tráfico de red.

¿Qué es el "sesgo por módulo" y por qué importa?

El enfoque ingenuo genera un entero aleatorio de 32 bits y aplica `n % poolSize`. Cuando el tamaño del pool no divide a 2³² de forma exacta, algunos índices quedan ligeramente más probables que otros. En una contraseña eso se traduce en pérdida de entropía. Descartamos las muestras que caen en la cola desbalanceada y volvemos a tirar — cada carácter sigue siendo equiprobable.

¿Cómo se calcula la fuerza en bits?

Entropía = longitud × log₂(tamaño del pool). Una contraseña de 16 caracteres con minúsculas+dígitos tiene 16 × log₂(36) ≈ 83 bits. La misma longitud con los cuatro conjuntos y sin filtro de ambiguos: 16 × log₂(94) ≈ 105 bits. Umbrales: débil <40, aceptable 40–63, fuerte 64–95, fortaleza 96+.

¿Por qué excluir caracteres ambiguos?

l, 1, I, O, 0 se confunden visualmente en muchas tipografías. Filtrarlos ayuda cuando la contraseña se va a leer en voz alta, copiar a papel, dictar por teléfono o mostrar en una pantalla de kiosco. El coste es un pool ligeramente menor, con algo menos de entropía por carácter — casi siempre un canje que vale la pena.

¿Las contraseñas se guardan o envían a algún sitio?

No. La generación se hace con JavaScript en tu navegador. La página no realiza ninguna petición al pulsar Generar. No registramos, no almacenamos, no transmitimos, no analizamos. Aunque después nos pidieras recuperar una contraseña generada, no podríamos — no queda ningún rastro.

¿Por qué el mínimo es 4 y no 8?

Para la mayoría de cuentas conviene usar 12+. El mínimo 4 existe porque hay casos legítimos tipo «PIN» (código de puerta, PIN de app, juegos de aula) en los que se necesita explícitamente una cadena corta numérica o alfabética. El medidor de fuerza avisa cuando la entropía es baja.

¿Qué símbolos incluye la opción "Símbolos"?

El conjunto es `!@#$%^&*()-_=+[]{};:,.<>?/` — 26 caracteres. Quedan fuera, a propósito, los que suelen romper la validación de formularios (barra invertida, comillas simples y dobles, acento grave, espacio), para que la contraseña funcione en el mayor número posible de altas.

¿Puedo generar una passphrase tipo "correct horse battery staple"?

Por ahora no — RandomHub genera contraseñas a nivel de carácter. Las passphrases estilo Diceware necesitan una lista de palabras curada y son una herramienta distinta. Si añadir esa página tiene sentido, sería una página separada.

Sobre las contraseñas aleatorias fuertes

La resistencia de una contraseña al ataque por fuerza bruta crece exponencialmente con su entropía en bits. Una contraseña de 12 caracteres tomados de los 94 ASCII imprimibles aporta unos 79 bits — ya por encima de lo que un atacante offline puede romper con un presupuesto de hardware razonable, siempre que el hash esté correctamente estirado. 16 caracteres dan unos 105 bits, y 24 caracteres unos 158, muy por encima del nivel práctico de seguridad de AES-128. La lección de la última década de investigación sobre contraseñas es clara: la longitud importa más que la diversidad de clases. Añadir un símbolo a una contraseña de 10 caracteres rinde menos que llevar la misma contraseña a 14 caracteres dentro de una clase más pequeña. Los valores por defecto de RandomHub — longitud 16, los cuatro conjuntos, sin filtro de ambiguos — caen cómodamente en zona fortaleza para la mayoría de modelos de amenaza. La herramienta es deliberadamente estrecha: aleatoriedad criptográfica, longitud y conjuntos configurables, un medidor de entropía honesto, y nada más. Si una funcionalidad mejoraría notablemente el flujo sin romper la garantía «se queda en tu navegador», escríbenos.