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.
Secreto aleatorio
sTSKfBqThfzCOLlx8tmM7u2FzdA-1dCZhxBTG-uks-MComo 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
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.
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.
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
Generador de UUID
UUID Generator
Genera UUID v1, v4, v5 y v7 en lote, y extrae la marca de tiempo de un valor v1 o v7.
Generador de ULID y NanoID
ULID & NanoID Generator
Genera ULID ordenables o NanoID cortos con el alfabeto y la longitud que elijas, y muestra la probabilidad de colisión.
Generador de HMAC
HMAC Generator
Calcula el HMAC de un mensaje con el hash y la codificación de clave que elijas, para comprobar firmas de webhooks.
Cifrar y descifrar texto
Text Encrypt & Decrypt
Cifra un mensaje con AES-GCM a partir de una frase de contraseña y produce un bloque Base64 autocontenido.
Después
Estas aceptan lo que produce esta herramienta, así que el resultado puede pasar directamente.
Analizador y conversor de archivos .env
.env Parser & Converter
Analiza un archivo .env y lo convierte a JSON, YAML, exportaciones de shell, o formatos de Docker o de Kubernetes.
Generador de HMAC
HMAC Generator
Calcula el HMAC de un mensaje con el hash y la codificación de clave que elijas, para comprobar firmas de webhooks.
Generador de contraseñas
Password Generator
Genera contraseñas aleatorias con las reglas de longitud, conjunto de caracteres y exclusión de caracteres ambiguos que elijas, y por lotes si hace falta.
Generador de UUID
UUID Generator
Genera UUID v1, v4, v5 y v7 en lote, y extrae la marca de tiempo de un valor v1 o v7.
Comprobar un enlace sospechoso
Suspicious URL Check
Examina la forma de un enlace antes de que lo abras —caracteres que imitan a otros, IP en lugar de dominio, trucos con @, subdominios profundos, puertos raros, acortadores— y, si lo pides, sigue sus redirecciones y consulta cuándo se registró el dominio; no consulta ninguna base de reputación.
Codificador y decodificador Base64
Base64 Encoder & Decoder
Codifica y decodifica Base64 y Base64URL, para texto o archivos, tratando UTF-8 correctamente.