Seguridad
Generador de contraseñas y claves API
Contraseñas, frases, claves de API y PIN generados con el azar bueno del navegador, con los bits de entropía siempre a la vista.
Qué es y para qué sirve
Una contraseña no es fuerte porque tenga símbolos raros: es fuerte porque hay demasiadas posibilidades entre las que estaba y porque la que salió se eligió al azar de verdad. Esa cantidad de posibilidades se mide en bits de entropía, y es el único número que permite comparar dos contraseñas. Cada bit dobla el trabajo de quien intente adivinarla: 40 bits son un billón de combinaciones y caen en minutos si se filtra la base de datos; 80 bits son un millón de veces más y ya no caen. Esta página enseña ese número en todo momento, junto a lo que costaría romper el resultado en cuatro escenarios distintos, porque sin él lo demás son sensaciones.
La otra mitad del asunto es de dónde sale el azar. Aquí todo se genera con «crypto.getRandomValues», el generador criptográfico que trae el navegador, el mismo que usan por debajo las conexiones cifradas, y nunca con «Math.random()», que está pensado para simulaciones y cuyo estado se puede reconstruir observando unas cuantas salidas. Los caracteres se sortean además por rechazo y no con el resto de una división, que es el error silencioso de muchos generadores: hace que las primeras letras del alfabeto salgan un poco más a menudo que las últimas, y ese sesgo, aunque sea pequeño, es exactamente lo que un atacante usa para probar antes unas combinaciones que otras.
La herramienta hace cuatro cosas distintas porque cuatro son las que hacen falta. Contraseñas para cuentas, con las casillas de siempre (mayúsculas, números, símbolos) más las que suelen faltar: quitar los caracteres que se confunden al dictar, prohibir los que rechaza un sistema concreto, evitar tramos como «abc» o «123», partir en grupos con guiones. Frases de contraseña al estilo diceware, sacadas de una lista de 1024 palabras españolas sin tildes, que son las que se pueden memorizar y teclear en un móvil. Claves de API en Base64, Base64 para URL, hexadecimal, alfanumérico o UUID, midiendo en bytes de azar en lugar de en caracteres. Y PIN numéricos que esquivan los patrones de siempre: los años, las fechas de día y mes, los pares repetidos.
Hay además un comprobador para una contraseña que ya usas, y funciona al revés que los medidores habituales. En vez de dar una medalla por tener mayúscula, número y símbolo, parte la contraseña en trozos reconocibles —palabras corrientes, repeticiones, tramos de teclado, años— y le cobra a cada trozo lo que costaría acertarlo, que es como ataca un programa de verdad. Por eso «Contrasena2024!» sale mal parada aunque cumpla todos los requisitos de cualquier formulario. Nada de lo que escribas o generes sale de tu navegador: esta página no tiene servidor al que enviarlo, y una vez cargada funciona sin conexión.
Casos de uso
- Crear la contraseña de una cuenta nueva y guardarla directamente en el gestor de contraseñas.
- Sacar una clave de API o un token de servicio con los bytes de azar que toque, en Base64 o en hexadecimal.
- Generar el secreto de firma de una aplicación (sesiones, JWT, webhooks) sin dejarlo en manos de una cadena escrita a mano.
- Cambiar la contraseña del router o del Wi-Fi por una larga que no tenga caracteres que se confundan al dictarla.
- Preparar contraseñas iniciales para dar de alta a varias personas de golpe y repartirlas de una sola vez.
- Elegir una frase de contraseña que sí se pueda memorizar: la del portátil, la del gestor de contraseñas, la de la copia de seguridad.
- Poner un PIN de teléfono, de tarjeta o de caja fuerte que no sea un año ni una fecha.
- Cumplir un requisito absurdo de un formulario (exactamente 12 caracteres, sin símbolos, con un número obligatorio) sin rebajar la seguridad más de lo necesario.
- Comprobar si la contraseña que llevas usando desde hace años es tan buena como creías.
- Enseñar en una charla o en clase por qué la longitud manda sobre los símbolos, viendo cambiar los bits al mover la barra.
- Generar identificadores UUID para pruebas, semillas o registros.
Cómo se usa
- Elige arriba qué necesitas: contraseña, frase, clave de API, PIN, o comprobar una que ya tengas.
- Ajusta la longitud y las casillas. El resultado se regenera al momento con cada cambio, y los bits de entropía se actualizan al lado.
- Mira la barra y el tiempo de rotura: si el escenario de «filtración con hash rápido» no da años, alarga.
- Copia con el botón, o activa el vaciado del portapapeles para que no se quede ahí dentro toda la tarde.
- Si hay que dictarla por teléfono, abre «cómo se dicta» y léela con el alfabeto radiofónico.
- Para varias a la vez, indica cuántas en el bloque de abajo y cópialas todas o descárgalas en un .txt.
- Si generas una clave de API, mira el bloque de la terminal: el mismo secreto creado en la máquina donde va a vivir, sin pasar por el portapapeles.
Qué incluye Generador de contraseñas y claves API
- Azar criptográfico del navegador (crypto.getRandomValues) y sorteo por rechazo, sin el sesgo que introduce el resto de una división.
- Bits de entropía calculados a partir del procedimiento, no una puntuación inventada de 0 a 100.
- Tiempo estimado de rotura en cuatro escenarios, desde un formulario con freno hasta una filtración con hashes en MD5.
- Contraseñas con longitud de 4 a 64, mayúsculas, minúsculas, números y la lista de símbolos que tú decidas.
- Ajustes rápidos para los cuatro encargos de siempre: cuenta normal, contraseña para dictar, contraseña sin símbolos y clave de Wi-Fi de 63 caracteres.
- Exclusión de caracteres ambiguos (I l 1 O 0) para las contraseñas que hay que dictar o copiar a mano.
- Lista de caracteres prohibidos, para los sistemas que rechazan ciertos signos.
- Requisitos habituales de los formularios: al menos uno de cada tipo, sin repetir, sin tramos como «abc», «321» o «qwe».
- Separación en grupos con guiones, avisando de que eso no añade seguridad.
- Frases de contraseña estilo diceware con 1024 palabras españolas sin tildes ni eñes: 10 bits exactos por palabra.
- Claves de API en Base64, Base64 para URL, hexadecimal, alfanumérico, alfanumérico seguro para URL y UUID v4.
- Medida en bytes de azar (16, 24, 32, 48, 64) en lugar de en caracteres, que es como se razona una clave de verdad.
- Prefijos tipo sk_live_ para reconocer la clave de un vistazo y que los detectores de secretos la encuentren si acaba publicada.
- El comando equivalente en Node.js, OpenSSL, Python y PowerShell para generar la misma clave desde la terminal.
- PIN numéricos que esquivan los más usados, los años, las fechas de día y mes y los pares repetidos.
- Generación por lotes de hasta 200, con copia de toda la lista y descarga en .txt.
- Dictado con el alfabeto radiofónico y el nombre de cada signo, para leer una contraseña por teléfono sin repetirla tres veces.
- Vaciado opcional del portapapeles un minuto después de copiar.
- Comprobador de contraseñas propias que descuenta palabras, repeticiones, tramos de teclado y años en lugar de premiar los símbolos.
- Todo ocurre en tu navegador: nada se envía, nada se guarda y funciona sin conexión.
Preguntas frecuentes
- ¿Se envían a algún sitio las contraseñas que genero o compruebo?
- No. Todo se genera y se analiza en tu propio navegador: esta página no tiene servidor al que mandar nada, no guarda historial y no escribe nada en el almacenamiento del navegador. Cuando se ha cargado, puedes desconectar el equipo de la red y sigue funcionando igual, que es la manera más sencilla de comprobarlo.
- ¿De dónde sale el azar? ¿Es seguro el de un navegador?
- Sale de crypto.getRandomValues, el generador criptográfico que el navegador alimenta con la entropía del sistema operativo, el mismo que se usa para las claves de las conexiones cifradas. No es Math.random(), que es rápido pero predecible: observando unas cuantas salidas se puede reconstruir su estado y adivinar las siguientes. Para dibujar animaciones da igual; para una contraseña es la diferencia entre secreta y no serlo.
- ¿Qué son los bits de entropía y cuántos necesito?
- Son el logaritmo en base dos del número de contraseñas que podían haber salido con esas mismas opciones. Cada bit dobla el trabajo del atacante. Como referencia: menos de 45 bits se rompe si se filtra la base de datos; entre 65 y 80 aguanta cualquier ataque normal; a partir de 90 la fuerza bruta deja de ser una vía. Una contraseña de 20 caracteres con mayúsculas, minúsculas, números y símbolos ronda los 128 bits, y ahí ya no hay nada que hacer por ese camino.
- ¿Qué importa más, la longitud o los símbolos?
- La longitud, y no está cerca. Añadir símbolos amplía el alfabeto de unos 62 caracteres a unos 74, lo que sube un 6 % los bits por carácter; añadir cuatro caracteres más multiplica las posibilidades por treinta millones. Los símbolos están porque muchos formularios los exigen, no porque sean lo que sostiene la contraseña. Si tienes que elegir, alarga.
- ¿Qué es una frase de contraseña y por qué usar palabras?
- Es una contraseña hecha de varias palabras elegidas al azar de una lista, el método que se conoce como diceware. Aquí la lista tiene 1024 palabras españolas sin tildes, así que cada palabra aporta 10 bits exactos: cinco palabras son 50 bits y siete son 70. La gracia es que se memoriza y se teclea en un móvil sin sufrir, cosa que con una cadena de veinte símbolos no pasa. Es lo que conviene para las tres o cuatro contraseñas que tienes que saberte de memoria: la del equipo, la del gestor de contraseñas y la de la copia de seguridad.
- Si el diccionario es público, ¿no es más fácil de adivinar?
- No, y es un malentendido muy común. La seguridad de una frase no depende de que el atacante ignore la lista, sino de cuántas palabras tiene y de que la elección sea aleatoria. Los bits que se muestran aquí ya dan por hecho que el atacante conoce el diccionario entero y prueba solo combinaciones de esas palabras. Lo que sí la destruye es elegirlas tú: una frase «al azar» pensada por una persona no lo es, porque tiende a las mismas palabras y a un orden que suene bien.
- ¿Cuántos bytes debe tener una clave de API?
- Con 32 bytes (256 bits) vas sobrado para cualquier cosa, y es lo que se usa por costumbre: es lo que sale del clásico randomBytes(32). Con 16 bytes (128 bits) ya es irrompible por fuerza bruta, así que 32 es un margen cómodo, no una necesidad. Lo importante es razonar en bytes de azar y no en caracteres: los mismos 32 bytes ocupan 44 caracteres en Base64 y 64 en hexadecimal, y no por ser más largos son más seguros.
- ¿Base64, hexadecimal o alfanumérico?
- Los tres llevan el mismo azar, cambia dónde caben sin dar problemas. Base64 es el más corto de los tres, pero lleva + / y = , que hay que escapar en una URL. Base64 para URL cambia esos signos y quita el relleno: viaja entero en una URL, en una cabecera o en un nombre de archivo. Hexadecimal ocupa el doble pero se lee, se dicta y se busca en un registro sin sorpresas. Alfanumérico es el mínimo común denominador que acepta cualquier sistema, incluidos los que se atragantan con signos.
- ¿Para qué sirve el prefijo de las claves?
- Para reconocerlas. Un «sk_live_» delante dice de un vistazo qué es esa cadena y de qué entorno, evita que alguien pegue la clave de producción donde iba la de pruebas, y permite que los detectores de secretos de GitHub y compañía la identifiquen si acaba publicada por error en un repositorio. No es secreto y no suma bits, pero ahorra disgustos. Es lo que hacen Stripe, GitHub o OpenAI con las suyas.
- ¿Por qué me enseñáis el comando de la terminal si ya la generáis aquí?
- Porque una clave de API casi nunca se necesita en el navegador: se necesita en el servidor donde va a vivir. Generarla ahí ahorra un viaje —no pasa por el portapapeles, ni por esta pantalla, ni por el historial de la terminal si escribes el comando empezando por un espacio— y esos viajes son el sitio donde de verdad se pierden los secretos. Los comandos que se muestran hacen exactamente lo mismo que el botón.
- ¿Es fiable el medidor de fortaleza para una contraseña mía?
- Es una estimación, y conviene leerla en una sola dirección. Descuenta lo que reconoce (palabras corrientes, repeticiones, tramos de teclado, años, separadores que se repiten, sustituciones tipo «4» por «a») y un atacante real reconoce muchísimo más, porque su diccionario es enorme: si aquí sale débil, lo es seguro. Al revés no vale igual, porque una contraseña montada con una regla fija que aquí no se detecta puede salir mejor parada de lo que merece. Para una contraseña generada en esta misma página no hay estimación que valga: los bits se saben exactos, porque se conoce el procedimiento con el que salió.
- ¿Comprobáis si mi contraseña está en alguna filtración?
- No, y es a propósito. Esa comprobación exige consultar un servicio externo, aunque sea con el truco de mandar solo los primeros caracteres del hash, y esta página no habla con nadie. Si quieres hacerla, haveibeenpwned.com la ofrece de esa manera. Es una comprobación que merece la pena: una contraseña puede tener muchos bits y ser inútil si ya circula en una lista.
- ¿Debo cambiar mis contraseñas cada tres meses?
- No. Esa costumbre viene de una recomendación vieja que el propio NIST retiró, porque en la práctica lleva a lo contrario de lo que busca: la gente pasa de «Verano2024!» a «Verano2025!» y el atacante lo sabe. Lo que sí hay que cambiar de inmediato es cualquier contraseña de un servicio que haya sufrido una filtración, cualquiera que uses en más de un sitio y cualquiera que hayas compartido con alguien que ya no debería tenerla.
- ¿Dónde guardo tantas contraseñas distintas?
- En un gestor de contraseñas. Es la única respuesta honesta: nadie memoriza cuarenta cadenas de veinte caracteres, y la alternativa real no es memorizarlas, es repetir la misma en todas partes, que es el fallo del que salen casi todos los robos de cuentas. Con un gestor solo tienes que saberte de memoria una: la que lo abre, y para esa lo suyo es una frase larga de las de aquí, más un segundo factor.
- ¿Es seguro un PIN de cuatro cifras?
- Por sí mismo no: son diez mil combinaciones y se prueban enteras en un instante. Lo que lo hace útil es el aparato que lo pide, que limita los intentos y se bloquea a los pocos fallos; el PIN solo tiene que resistir a alguien que pueda probar cinco veces. Por eso lo que más importa es que no sea uno de los previsibles: 1234, 1111, 0000 y los años cubren una parte enorme de los que elige la gente. Si el aparato admite seis cifras, mejor seis.
- ¿Qué hace la opción de vaciar el portapapeles?
- Escribe un espacio en el portapapeles un minuto después de que copies, para que la contraseña no se quede ahí dentro el resto de la tarde y no aparezca al pegar en el sitio equivocado. Necesita que esta pestaña siga abierta, y algunos navegadores solo dejan tocar el portapapeles si la página tiene el foco, así que no es una garantía: es una red de seguridad contra el descuido, no contra un atacante.
- ¿Puedo fiarme de una página web para generar una contraseña?
- Con dos condiciones: que la generación ocurra en tu navegador y no en un servidor, y que use el generador criptográfico del sistema. Las dos se cumplen aquí y las dos se pueden comprobar sin fiarte de esta respuesta: abre las herramientas de desarrollo, mira la pestaña de red mientras generas y verás que no sale ninguna petición. Aun así, para el secreto más importante que tengas, lo más limpio siempre será generarlo en tu propia máquina con el gestor de contraseñas o con una línea de terminal.
Privacidad
Generador de contraseñas y claves API funciona íntegramente en tu navegador. No hay servidor detrás: los datos que introduces no se envían a ninguna parte y desaparecen al cerrar la pestaña.