Inicio › Herramientas para desarrolladores › Decodificador JWT

Decodificador JWT

Pega un JSON Web Token para ver su cabecera, su payload y sus claims explicados con claridad, con fechas legibles y una cuenta regresiva de caducidad en vivo. Si quieres, verifica la firma con un secreto o una clave pública. Todo se queda en tu navegador.

Última actualización:

Decoded locally. Your token is never sent anywhere.
Publicidad

Cómo usar Decodificador JWT

  1. Pega tu JWT en el cuadro. El prefijo Bearer inicial se elimina automáticamente.
  2. Lee las partes decodificadas: la cabecera muestra el algoritmo y el payload muestra cada claim como JSON formateado.
  3. Revisa la tabla de claims para ver las fechas de emisión, de inicio de validez y de caducidad en formato legible, y la cuenta regresiva en vivo.
  4. Verifica la firma (opcional): escribe el secreto compartido para HS256/384/512 o pega la clave pública para tokens RS, PS, ES o EdDSA, y pulsa Verificar firma.
  5. Copia el JSON de la cabecera o del payload con un clic.

Anatomía de un JSON Web Token

Un JWT firmado (un JWS en forma compacta) son tres cadenas base64url unidas por puntos: header.payload.signature. Base64url es base64 normal con - y _ en lugar de + y / y sin relleno =, lo que hace que el token sea seguro para URL y cabeceras HTTP.

ParteContieneEjemplo (decodificado)
CabeceraEl algoritmo de firma (alg), el tipo de token (typ) y a veces un ID de clave (kid){"alg":"HS256","typ":"JWT"}
PayloadLos claims: de quién trata el token, quién lo emitió, para quién y cuándo es válido{"sub":"42","exp":1767225600}
FirmaEl algoritmo aplicado a base64url(header) + "." + base64url(payload) con un secreto o una clave privadaBytes sin procesar, codificados en base64url

Como la cabecera y el payload solo están codificados, nunca pongas contraseñas ni otros secretos en el payload de un JWT, salvo que el token también esté cifrado (JWE).

Claims registrados y valores de tiempo

El RFC 7519 define siete nombres de claims registrados. Los claims de tiempo son valores NumericDate: segundos enteros desde el 1 de enero de 1970 UTC, no milisegundos. Por ejemplo, exp: 1767225600 es el 1 de enero de 2026 a las 00:00:00 UTC.

ClaimNombreQué comprueban los servidores
issEmisor (issuer)Coincide con el proveedor de identidad esperado
subSujeto (subject)El usuario o cliente al que representa el token
audAudiencia (audience)Contiene el identificador de esta API; si no, se rechaza
expHora de caducidadLa hora actual es anterior a exp (a menudo con un pequeño margen por desfase de reloj)
nbfNo antes de (not before)La hora actual es igual o posterior a nbf
iatEmitido en (issued at)Se usa para calcular la antigüedad del token
jtiID del JWTID único; se puede guardar para bloquear reutilizaciones

Comparación de algoritmos de firma

algTipoClave necesaria para verificarUso típico
HS256 / HS384 / HS512HMAC con SHA-2El mismo secreto compartido usado para firmarUn servicio que emite y comprueba los tokens
RS256 / RS384 / RS512RSA PKCS#1 v1.5Clave pública RSAProveedores de OAuth y OpenID Connect
PS256 / PS384 / PS512RSA-PSSClave pública RSAImplementaciones RSA modernas
ES256 / ES384 / ES512ECDSA sobre P-256 / P-384 / P-521Clave pública ECFirmas cortas, móviles e IoT
EdDSAEd25519Clave pública Ed25519Firmas rápidas y modernas
noneSin firmarNadaNunca lo aceptes en producción

Un secreto HMAC para HS256 debe tener al menos 32 bytes aleatorios. Los secretos cortos o fáciles de adivinar se pueden descifrar por fuerza bruta sin conexión a partir de cualquier token capturado.

Preguntas frecuentes

¿Qué es un JWT?

Un JSON Web Token es una cadena compacta con tres partes en base64url separadas por puntos: una cabecera que indica el algoritmo de firma, un payload de claims como el ID de usuario y la hora de caducidad, y una firma que demuestra que las dos primeras partes no se modificaron.

¿Es seguro pegar mi token aquí?

Sí. El decodificador funciona completamente en tu navegador con JavaScript y la Web Crypto API. El token, el secreto y las claves nunca se suben, registran ni almacenan. Aun así, trata los tokens de producción activos como contraseñas y evita compartirlos.

¿Decodificar un JWT significa que es válido?

No. Cualquiera puede decodificar un JWT porque la cabecera y el payload solo están codificados en base64url, no cifrados. Un token solo es fiable después de verificar su firma con el secreto o la clave pública correctos y de comprobar sus claims exp, nbf, iss y aud.

¿Cómo sé cuándo caduca un JWT?

El claim exp contiene la hora de caducidad en segundos Unix. El decodificador la convierte a tu hora local y a UTC, muestra una cuenta regresiva en vivo y cambia a un indicador de Caducado cuando ha pasado la hora.

¿Cómo verifico una firma HS256?

Introduce el secreto compartido que usa el servidor para firmar los tokens. La herramienta calcula HMAC-SHA256 sobre la cabecera y el payload y lo compara con la firma. Marca la opción base64 si tu secreto está guardado codificado en base64.

¿Puede verificar tokens RS256?

Sí. Pega la clave pública del emisor como un bloque PEM que empiece por BEGIN PUBLIC KEY, o como JSON JWK o JWKS del endpoint jwks del proveedor. Se admiten tokens RS, PS, ES (P-256, P-384, P-521) y EdDSA siempre que tu navegador admita el algoritmo.

¿Por qué mi token muestra 'AÚN NO VÁLIDO'?

Su claim nbf (not before, no antes de) está en el futuro, así que los servidores deberían rechazarlo hasta entonces. Esto suele significar que el reloj del servidor emisor va adelantado respecto al tuyo.

¿Se prueban todas las herramientas de FreeToolCabin para comprobar su calidad y precisión?

Sí. Cada herramienta del sitio pasa pruebas automáticas en navegadores reales para comprobar que el resultado es correcto y que no hay errores. Si encuentras un fallo o tienes una sugerencia, escríbenos a [email protected] y lo revisaremos.

Herramientas relacionadas

Ver todas las de Codificadores, hashes y criptografía →