Generador y verificador de JWT

Edite la cabecera y la carga útil como JSON, fije los tiempos con un clic y firme el token con su secreto. Pegue abajo un token para comprobar su firma con el mismo secreto.

Gratuita Funciona en su navegador Revisada: martes, 10 de noviembre de 2026

Esta herramienta funciona en su navegador. Lo que escribe no se envía a nosotros.

Cómo se usa

  1. Escriba la Cabecera (JSON) y la Carga útil (JSON). Use Poner iat en el momento actual, Poner nbf en el momento actual o Poner exp dentro de para rellenar los tiempos.
  2. Elija el Algoritmo y escriba el Secreto. Elija Base64 en Codificación del secreto si el secreto está escrito en Base64.
  3. Copie el Token. Tiene tres partes separadas por puntos: la cabecera, la carga útil y la firma.
  4. Pegue un token en Token que comprobar para ver si su firma coincide con el secreto de arriba.

Cómo se firma un JWT

Un token web JSON (RFC 7519) es una cabecera y una carga útil, cada una escrita como JSON y codificada en base64url (RFC 7515), unidas por un punto. La firma es un HMAC de esas dos partes, hecho con el secreto (RFC 7518, sección 3.2). La cabecera nombra el algoritmo en su campo alg, y esta página fija ese campo con el algoritmo que usted elija.

La página escribe cada objeto JSON en su forma compacta antes de codificarlo, así que los bytes firmados son la forma compacta de lo que escribió, no el texto con sus espacios y saltos de línea. Cualquier parte que compruebe el token trabaja con los bytes que recibe, así que el token es válido de cualquier forma.

entrada de firma = BASE64URL(cabecera) . BASE64URL(carga)
firma            = HMAC-SHA-256(secreto, entrada de firma)
                   (HS384 y HS512 usan HMAC-SHA-384 y HMAC-SHA-512)
token            = entrada de firma . BASE64URL(firma)

Los tiempos de la carga útil

Los claims iat (emitido en), nbf (no antes de) y exp (hora de caducidad) son NumericDate: segundos desde el 1 de enero de 1970 a las 00:00 UTC (RFC 7519, secciones 2 y 4.1). Un token no se acepta en el momento exp ni después, ni antes de nbf. Los botones escriben la hora del reloj de su dispositivo, así que un reloj mal ajustado da una hora equivocada.

Lo que hace y lo que no hace la comprobación

La comprobación recalcula el HMAC de la cabecera y de la carga útil exactamente como se pegaron, y lo compara con la firma. Rechaza alg none y todos los algoritmos salvo HS256, HS384 y HS512, así que un token no puede elegir una comprobación más débil.

No comprueba lo que significan los claims: que iss sea el emisor que espera, o que aud nombre su servicio. Su aplicación debe comprobarlos, como recomienda la RFC 8725.

Ejemplo resuelto: HS256 con el secreto your-256-bit-secret

Con la cabecera {"alg": "HS256", "typ": "JWT"}, la carga útil {"sub": "1234567890", "name": "Ada Lovelace", "iat": 1516239022} y el secreto UTF-8 your-256-bit-secret, la página crea este token:

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkFkYSBMb3ZlbGFjZSIsImlhdCI6MTUxNjIzOTAyMn0.nmm0qepYRjhNji3O-jq8Pvcr7l_me1_bomw4EJucQCU

Comprobarlo con el mismo secreto da una firma válida. El token no tiene claim exp ni nbf, así que ningún momento puede hacerlo no válido. Comprobarlo con cualquier otro secreto indica que la firma no coincide.

Preguntas frecuentes

¿Se envía mi secreto a algún servidor?

No. El token se firma en su navegador con SubtleCrypto, la función criptográfica propia del navegador. El secreto se mantiene solo mientras la página está abierta: no se envía, no se guarda y no se registra.

¿Por qué la página dice que la firma coincide, pero mi biblioteca rechaza el token?

La biblioteca puede comprobar los tiempos exp o nbf, la audiencia o el emisor, o puede leer el secreto en otra codificación. Lea el secreto como UTF-8 o como Base64 de la misma forma que su biblioteca, y compare los tiempos con un reloj correcto.

¿Por qué se rechaza alg none?

Un token con alg none no tiene firma, así que cualquiera puede escribir uno. Un servicio debe rechazarlo. Esta página lo rechaza al comprobar, y su firma siempre escribe un algoritmo HMAC.

¿Qué longitud debe tener el secreto?

Al menos la longitud de la salida del hash: 32 bytes para HS256, 48 para HS384 y 64 para HS512 (RFC 7518, sección 3.2). La página avisa cuando el secreto es más corto.

¿Puede esta página crear tokens RS256 o ES256?

No. Firma y comprueba solo con un secreto compartido, usando HS256, HS384 o HS512. Los tokens firmados con una clave privada RSA o ECDSA necesitan esa clave, que esta página no acepta.

¿Cuándo debo elegir Base64 para el secreto?

Solo cuando el secreto está escrito en Base64, por ejemplo el valor k de una clave web JSON. Si no, el secreto se lee como texto UTF-8 exactamente como lo escribió, con sus espacios incluidos.

Fuentes

Cifras y texto revisados por última vez el martes, 10 de noviembre de 2026.

Usamos cookies necesarias para que el sitio funcione. Si usted lo acepta, Google también usa cookies publicitarias para mostrar anuncios personalizados. Si las rechaza, seguirá viendo anuncios, pero no estarán personalizados.