Saltar al contenido

Generador de claves aleatorias

Random Key Generator

Genera bytes aleatorios criptográficos en hexadecimal, Base64 o Base64URL con la longitud que elijas, para los secretos de una aplicación.

Un `SECRET_KEY` o una clave de firma de JWT tiene que ser bytes aleatorios de una longitud declarada en una codificación declarada, y las improvisaciones habituales —un teclado aporreado, un UUID, un hash del nombre del proyecto— tienen todas menos entropía de la que aparentan. Esta herramienta produce los bytes y los codifica.

🔒 Se ejecuta por completo en tu navegadorrandomkeysecretgenerator

Secreto aleatorio

sTSKfBqThfzCOLlx8tmM7u2FzdA-1dCZhxBTG-uks-M
Como JWK (oct)
{
  "kty": "oct",
  "k": "sTSKfBqThfzCOLlx8tmM7u2FzdA-1dCZhxBTG-uks-M",
  "ext": true
}

Clave de WebCrypto

Una CryptoKey de verdad, exportada como JWK: se usa tal cual con crypto.subtle.

Cada byte sale de crypto.getRandomValues y se queda en esta pestaña. Nada se genera en un servidor ni se envía a uno.

Cómo se usa

  1. Elige la longitud en bytes

    32 bytes (256 bits) cubre casi todo: HMAC-SHA256, AES-256, claves de sesión. Más largo no es más fuerte para estos usos; el algoritmo define el tamaño útil.

  2. Elige la codificación que quiere la configuración

    El hexadecimal no tiene ambigüedad y es el doble de largo. Base64URL evita `+`, `/` y `=`, que es lo que quieres en una URL, una cabecera o un archivo `.env` que otra cosa va a analizar.

  3. Ponla en el almacén de secretos, no en el repositorio

    Una clave confirmada en un commit una sola vez es una clave que hay que rotar, por rápido que se haya revertido el commit. Genera una distinta por entorno.

Preguntas frecuentes

¿De dónde sale la aleatoriedad?

De `crypto.getRandomValues`, el CSPRNG del navegador, sembrado por el sistema operativo. No se transmite nada y no se guarda nada.

¿Una clave generada en un navegador es tan buena como una de `openssl rand`?

La aleatoriedad es de la misma calidad: las dos salen del sistema operativo. La diferencia está en dónde se muestra la clave: en una pantalla, posiblemente en un navegador que sincroniza, posiblemente con una extensión observando el DOM. En una máquina que no controlas, usa la línea de comandos.

¿Puedo usar esto para un UUID?

Usa el generador de UUID en su lugar: un UUIDv4 tiene una disposición fija con seis bits dedicados a la versión y la variante, así que una cadena aleatoria a secas no es un UUID válido.

Puede recibir de

Después

Estas aceptan lo que produce esta herramienta, así que el resultado puede pasar directamente.