Subir un archivo
  1. base64hub
  2. Claves y hashes
  3. Generador de claves Base64

Generador de claves Base64

Haz clic en un ajuste predefinido y obtén una clave en el formato exacto que espera tu framework: 32 bytes aleatorios en Base64, un APP_KEY de Laravel, una clave AES o un secreto HMAC o JWT. Cada clave se genera en local con el generador aleatorio seguro del navegador.

Gratis sin registro, sin límites Local no se sube nada Ajustes Laravel, AES, HMAC, JWT, Django, Rails Actualizado 27 oct 2026

Entropía –Longitud –

Generado con crypto.getRandomValues, el generador criptográficamente seguro del navegador. No se guarda ni se envía nada.

Se procesa en tu navegador. Esta página no puede enviar tus datos a ninguna parte – cómo lo sabemos

Cómo generar una clave

  1. Haz clic en el ajuste que corresponde a lo que estás configurando. 32 bytes está seleccionado al abrir la página.
  2. Copia el valor de Valores aleatorios. Los ajustes con línea de configuración, como Laravel o Auth.js, la muestran también en Listo para pegar.
  3. Pulsa Generar nuevos para obtener otra clave, o sube Cantidad para crear varias a la vez, por ejemplo una por entorno.

Los ajustes fijan por ti el número de bytes y el formato. Si cambias cualquiera de los dos campos, la herramienta vuelve a Personalizado y conserva tus valores.

Ajustes y dónde va cada clave

AjusteQué obtienesLongitudUso típico
16 / 32 / 64 bytesbytes aleatorios en Base6424 / 44 / 88claves genéricas, salts, secretos
APP_KEY de Laravelbase64: + 32 bytes51APP_KEY en .env
Clave AES-12816 bytes, Base6424AES-128-GCM o -CBC
Clave AES-25632 bytes, Base6444AES-256-GCM o -CBC
Secreto HMAC32 bytes, Base6444firmas HMAC-SHA256, webhooks
Secreto JWT HS25632 bytes, Base64URL43JWT_SECRET para tokens HS256
Secreto de Auth.js32 bytes, Base6444AUTH_SECRET (antes NEXTAUTH_SECRET)
SECRET_KEY de Django50 caracteres del alfabeto de Django50SECRET_KEY en settings
secret_key_base de Rails64 bytes, hex128secret_key_base
Token de API32 bytes, Base64URL43tokens bearer, enlaces de invitación
UUID v4 (Base64URL)un UUID aleatorio en forma corta22ID compactos; también se muestra el UUID canónico

El ajuste de nonce CSP sirve para otra cosa y tiene su propia página, el generador de nonce CSP.

Los tamaños vienen de los algoritmos. Las claves AES tienen exactamente 16, 24 o 32 bytes; cualquier otra longitud se rechaza. RFC 7518 exige secretos HS256 de al menos 256 bits, por eso el ajuste JWT usa 32 bytes. Una clave HMAC más corta que la salida del hash debilita HMAC, así que 32 bytes encajan con HMAC-SHA256 y el ajuste de 64 bytes con HMAC-SHA512. El ajuste de Django elige sus 50 caracteres por muestreo de rechazo, de modo que todos los caracteres del alfabeto son igual de probables, igual que hace la propia get_random_secret_key() de Django.

Una clave Base64 es texto; la clave son bytes

El valor que copias es una representación Base64 de bytes aleatorios. El código que lo usa tiene que decodificarlo primero:

import base64, os

key = base64.b64decode(os.environ["AES_KEY"])
assert len(key) == 32

En Node.js lo mismo es Buffer.from(process.env.AES_KEY, "base64"). Si le pasas la cadena de 44 caracteres directamente a una biblioteca AES, o la rechaza (AESGCM key must be 128, 192, or 256 bits en Python, Invalid key length en Node.js) o, en bibliotecas más permisivas, usa bytes equivocados sin avisar. Los frameworks que leen sus propias claves, como Laravel con su prefijo base64:, hacen esta decodificación por ti.

Base64URL y Base64 estándar se decodifican en los mismos bytes, pero los parsers suelen ser estrictos con cuál aceptan. Mantén el formato que generó el ajuste, salvo que sepas que el consumidor acepta el otro.

Claves Fernet y otros formatos

El paquete cryptography de Python espera una clave Fernet de 32 bytes en Base64 URL-safe con relleno, 44 caracteres. Los ajustes JWT y Token de API dan la forma URL-safe sin el =, así que añade uno al final o genérala en Python:

from cryptography.fernet import Fernet

print(Fernet.generate_key().decode())

Para cualquier otro caso, parte del número de bytes: elige Personalizado, introduce los bytes que indica la documentación de tu biblioteca y elige Base64, Base64URL o hex. El generador de Base64 aleatorio explica las longitudes de salida, y HMAC en Base64 o cifrado AES te permiten probar una clave nueva al momento.

Qué hacer con las claves después de generarlas

Una clave generada aquí solo existe en esta pestaña hasta que la copias. A partir de ahí, está tan segura como el sitio donde la pegues. Guarda las claves de producción en el almacén de secretos de tu plataforma o en un gestor de secretos, usa una clave distinta por entorno y no las subas nunca al repositorio; una clave que llegó a un repositorio Git debe considerarse pública y sustituirse. Rotar una clave de cifrado implica volver a cifrar los datos antiguos o conservar la clave anterior para descifrar, así que planifícalo antes de cambiar un APP_KEY en un sistema en producción.

Preguntas frecuentes

¿Cómo genero una clave Base64 de 32 bytes?

El ajuste 32 bytes está seleccionado al abrir la página, así que la clave de la salida ya lo es: 44 caracteres que terminan en =. En una terminal, openssl rand -base64 32 hace lo mismo.

¿Puedo usar la cadena Base64 de 44 caracteres directamente como clave AES-256?

No. AES-256 necesita 32 bytes en bruto, y los 44 caracteres son su texto Base64. Decodifica antes la cadena; si pasas el texto tal cual, falla con un error como “Invalid key length” en Node.js.

¿Cómo genero un APP_KEY de Laravel sin artisan?

Elige el ajuste APP_KEY de Laravel y copia la línea APP_KEY=base64:… en .env. Tiene el mismo formato que escribe php artisan key:generate: el prefijo base64: más 32 bytes aleatorios para el cifrado AES-256-CBC por defecto.

¿Cómo creo aquí una clave Fernet?

No hay un ajuste para Fernet. Elige 32 bytes, pon Formato en Base64URL y añade un = a los 43 caracteres, porque Fernet espera Base64 URL-safe con relleno de 44 caracteres. O ejecuta Fernet.generate_key() en Python.

¿Es seguro generar claves de producción en el navegador?

La clave sale de crypto.getRandomValues, un generador criptográficamente seguro, y la página no puede enviarla a ninguna parte. El riesgo mayor está en lo que pasa después: guarda la clave en un gestor de secretos o en una variable de entorno protegida, nunca en un repositorio.