Generador de tokens y claves de API
Tokens criptográficamente seguros con la Web Crypto API. UUID, hex, tokens Base64 de portador o claves de API con prefijo.
Un identificador RFC 4122 v4 de 128 bits, 122 de ellos aleatorios. La opción por defecto para claves primarias de bases de datos, IDs de petición y tokens de correlación.
122 bits de entropía · generado en tu navegador, nunca enviado a un servidor
¿Por qué no Math.random()?
Math.random() es un generador de números pseudoaleatorios — su salida es predecible y no apta para tokens de seguridad. Esta herramienta usa crypto.getRandomValues(), la misma API que impulsa la generación de claves TLS y SSH.
Tipos de token explicados
UUID v4 es el estándar para IDs de bases de datos y tokens de correlación. Las cadenas hexadecimales funcionan bien para tokens de sesión y nonces. Base64 es compacto para tokens de API. Las claves de API con prefijos (como sk_ o vlt_) facilitan identificar y rotar credenciales filtradas.
¿Qué longitud debe tener un token?
128 bits de entropía es el mínimo para cualquier cosa que proteja un acceso, y es lo que NIST SP 800-63B espera de un secreto generado aleatoriamente. Eso son 32 caracteres hexadecimales, 22 caracteres Base64 o un UUID v4. Pasar de 256 bits no aporta nada frente a la fuerza bruta - solo te cuesta volumen de logs y tamaño de cabecera. La longitud importa más que el alfabeto: un token hex de 32 caracteres y uno Base64 de 22 son igual de difíciles de adivinar.
Tokens de portador, tokens de acceso y claves de API
Estos nombres describen cómo se usa una credencial, no cómo se genera. Un token de portador concede acceso con solo presentarlo, por eso la cabecera HTTP Authorization lo lleva tal cual. Un token de acceso es un token de portador de vida corta, normalmente emitido por un flujo OAuth. Una clave de API es un token de portador de vida larga emitido a un servicio y no a una persona. En el momento de generarlos, los tres son lo mismo: una cadena aleatoria opaca y de alta entropía. Usa hex o Base64 para los dos primeros, y el modo de clave de API cuando quieras un prefijo detectable.
¿Por qué poner un prefijo a tus claves de API?
GitHub, Stripe, OpenAI y Slack ponen prefijo a sus claves (ghp_, sk_live_, xoxb_) por una razón: así los escáneres de secretos reconocen una clave filtrada solo por la cadena, sin contexto alrededor. Si subes una clave con prefijo a un repositorio público, el emisor puede revocarla en minutos. Una cadena hex de 32 caracteres a secas parece un hash de commit, así que nada la detecta. Los prefijos también dejan claro el entorno de un vistazo, la defensa más barata contra pegar una clave de producción en una configuración de staging.
Preguntas frecuentes
¿Estos tokens son realmente aleatorios?
Sí. Cada token proviene de crypto.getRandomValues(), el generador de números aleatorios criptográficamente seguro del navegador, alimentado por el pool de entropía del sistema operativo. Es la misma primitiva que genera las claves de sesión TLS. Math.random(), que muchos generadores online siguen usando, es un generador pseudoaleatorio predecible y nunca debe producir un token de seguridad.
¿Se envía mi token a vuestro servidor?
No. La generación ocurre por completo en tu navegador con la Web Crypto API. Abre la pestaña de red y genera un token: no se hace ninguna petición. Nada se registra, almacena ni transmite. Si luego decides compartir el token, se cifra en tu navegador antes de que nada salga de la página.
¿Qué longitud debo usar para una clave de API?
128 bits de entropía, que es exactamente lo que produce el modo de clave de API de esta herramienta: tu prefijo más 32 caracteres hexadecimales. En la práctica es inadivinable y coincide con lo que emiten Stripe, GitHub y AWS. Sube de ahí solo si un requisito de cumplimiento concreto te lo exige.
¿Cuál es la diferencia entre un UUID v4 y un token hex aleatorio?
Un UUID v4 es un token aleatorio con una forma fija: 36 caracteres, cuatro guiones y seis bits reservados para la versión y la variante, lo que deja 122 bits aleatorios. Úsalo cuando otra cosa espere esa forma, como una columna uuid de base de datos. Usa hex o Base64 sin más cuando solo necesites un secreto y el formato lo elijas tú - es más corto para la misma fuerza.
¿Puedo generar varios tokens a la vez?
Sí. Pon la cantidad en 5, 10 o 25 y cada token se genera de forma independiente. Copiar todo los copia uno por línea, el formato que aceptan la mayoría de scripts de seed, archivos .env y gestores de contraseñas para importación masiva.
¿Cómo envío un token a un compañero de forma segura?
Ni por Slack, ni por correo, ni en un ticket - esos guardan una copia indefinidamente, así que cualquiera que luego acceda al canal accede a la credencial. Usa Compartir de forma segura para poner el token detrás de un enlace cifrado y autodestructivo: se cifra en tu navegador, la clave viaja en el fragmento de la URL y nunca se envía a nuestro servidor, y el secreto se destruye al leerlo o al caducar.
¿Necesitas compartir un token de forma segura?
No pegues tokens en Slack ni por correo. Envíalos mediante un enlace cifrado que se autodestruye y que solo el destinatario puede abrir.