Decodificador de JWT

Decodifica el header, payload y signature de un JWT (JSON Web Token) al instante. Consulta el estado de los claims exp, iat y nbf. 100% del lado del cliente, sin subidas, sin rastreo.

Publicidad
Publicidad

Decodifica JWTs sin subir tus tokens

Instant JWT decoding with claim status indicators and pretty-printed JSON — right in your browser. No uploads, no sign-up, no limits.

100% privado
Instant decoding
Gratis para siempre

Como usarlo

  1. 1

    Pega Tu JWT

    Copia un JWT y pégalo en la caja de entrada superior.

  2. 2

    Revisa el Header y el Payload

    El header decodificado (algoritmo) y el payload (claims) aparecen como JSON formateado.

  3. 3

    Comprueba el Estado de los Claims

    Los claims iat, nbf y exp se resaltan — los tokens expirados o aún no válidos se marcan en rojo o amarillo.

  4. 4

    Copia si lo Necesitas

    Usa el botón Copiar para copiar el header o el payload JSON decodificado.

¿Por qué usar este Decodificador de JWT?

Decodificación Local Instantánea

El header y el payload se decodifican y se formatean como JSON en el momento en que pegas el token — sin botones que pulsar.

Indicadores de Estado de los Claims

Los claims `exp`, `nbf` e `iat` se analizan y comparan con la hora actual, con un estado claro codificado por colores para tokens expirados, aún no válidos y activos.

Compatible con UTF-8

Decodifica correctamente los payloads Base64URL que contienen caracteres no ASCII, incluidos emoji y texto internacional.

Publicidad

Understanding JSON Web Tokens (JWT)

What is a JWT?

A JSON Web Token (JWT) is an open standard (RFC 7519) that defines a compact and self-contained way for securely transmitting information between parties as a JSON object. JWTs are commonly used for authentication and authorization in web applications. After a user logs in, the server issues a JWT containing claims about the user (such as their user ID and roles). The client includes this JWT in the Authorization header of subsequent requests, allowing the server to verify the user's identity without storing session state.

A JWT consists of three parts separated by dots: `header.payload.signature`. The header specifies the token type (JWT) and the signing algorithm (e.g., HS256, RS256). The payload contains the claims — statements about the user and additional metadata. The signature is used to verify that the token hasn't been tampered with. Only the header and payload are Base64URL-decoded to read the claims; the signature is a binary value used only for verification.

Publicidad

Decoding vs. verifying a JWT

Decoding a JWT means Base64URL-decoding the header and payload to read the claims. This does not require any secret key — anyone can decode a JWT. Decoding tells you what the token claims, but it does not prove that the claims are true or that the token was issued by a trusted party.

Verifying a JWT means checking the signature using the secret key (for HMAC algorithms) or public key (for RSA/ECDSA algorithms). This confirms that the token was issued by the holder of the secret/private key and that it hasn't been modified since. Only verified tokens should be trusted for security decisions. Our tool decodes JWTs but does not verify them — for verification, use a library like jsonwebtoken (Node.js) or PyJWT (Python).

Common JWT claims

Registered claims (defined in RFC 7519): `sub` (subject — the user ID), `iss` (issuer), `aud` (audience), `exp` (expiration time), `nbf` (not before), `iat` (issued at), `jti` (JWT ID). Private claims: custom claims agreed upon by the parties, such as `role`, `permissions`, `email`, or `name`. Our tool displays all claims in the payload as formatted JSON.

Publicidad

Casos de Uso Comunes

Depuración de Autenticación

Inspecciona los claims de un JWT emitido por tu servidor de autenticación para confirmar el ID de usuario, los roles o la expiración.

Desarrollo de APIs

Verifica rápidamente que el JWT que generas en el servidor contiene el payload esperado antes de enviarlo al cliente.

Aprender la Estructura de JWT

Mira exactamente cómo está estructurado un JWT — header, payload, signature — sin escribir nada de código.

Solución de Problemas de Tokens Expirados

Comprueba al instante si un error 401 está causado por un claim `exp` expirado o por un claim `nbf` aún no válido.

How does this compare to other JWT decoders?

A side-by-side comparison of popular JWT decoding tools.

CaracterísticaNovaToolsJWT.ioJWT.ms
Privacidad (sin subida)100% localSube al servidorSube al servidor
PrecioGratis ilimitadoGratis con anunciosFree
Estado de claim (exp/nbf/iat)Color-coded
Pretty-printed JSON
UTF-8 safe decodingLimitado
Mobile friendlyLimitadoLimitado
Funciona sin conexiónAfter page load

JWT.io and JWT.ms upload your token to their servers for decoding. Our tool decodes everything locally — your JWT never leaves your browser.

JWT Quick Reference

Key facts about JSON Web Tokens.

Token Structure

header.payload.signature

Three Base64URL-encoded parts separated by dots.

Ejemplo:eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjMifQ.abc123
header

JSON object with algorithm (alg) and token type (typ).

Ejemplo:{"alg":"HS256","typ":"JWT"}
payload

JSON object with claims about the user and token.

Ejemplo:{"sub":"123","exp":1735689600}
signature

HMAC/RSA/ECDSA signature. Not decoded, only verified.

Ejemplo:HMAC-SHA256(header.payload, secret)

Registered Claims

sub

Subject — identifica al usuario o entidad.

Ejemplo:"sub":"user-123"
iss

Issuer — identifica quién emitió el token.

Ejemplo:"iss":"auth.example.com"
aud

Audience — destinatario previsto del token.

Ejemplo:"aud":"api.example.com"
exp

Expiration time (Unix timestamp in seconds).

Ejemplo:"exp":1735689600
iat

Issued at (Unix timestamp in seconds).

Ejemplo:"iat":1735603200
nbf

Not before — el token no es válido antes de este tiempo.

Ejemplo:"nbf":1735603200

Algorithms

HS256

HMAC with SHA-256. Symmetric — same secret for sign and verify.

Ejemplo:{"alg":"HS256"} + shared secret
RS256

RSA signature with SHA-256. Asymmetric — private key signs, public key verifies.

Ejemplo:{"alg":"RS256"} + RSA 2048-bit key pair
ES256

ECDSA with P-256 and SHA-256. Asymmetric — smaller signatures than RSA.

Ejemplo:{"alg":"ES256"} + EC P-256 key pair
none

Sin firma. INSEGURO — nunca usar en producción.

Ejemplo:{"alg":"none"} — CRITICAL vulnerability

Preguntas frecuentes

¿Esta herramienta verifica la firma del JWT?
No. Esta herramienta solo decodifica el token — no verifica la firma. La decodificación te dice lo que el token reclama, pero cualquiera puede crear un token con cualquier claim. La verificación requiere el secreto de firma o la clave pública.
¿Es seguro pegar mi JWT aquí?
Sí. Toda la decodificación ocurre localmente en tu navegador. El token nunca se envía a un servidor. Sin embargo, debes evitar pegar tokens en sitios no confiables y nunca compartir JWTs en capturas de pantalla o tickets de soporte.
¿Qué significan los claims iat, nbf y exp?
`iat` (issued at) es cuándo se creó el token. `nbf` (not before) es la fecha más temprana en la que el token es válido. `exp` (expiration) es cuándo el token deja de ser válido. Todos se almacenan como marcas de tiempo Unix en segundos.
¿Por qué mi token tiene tres partes?
Un JWT tiene tres partes codificadas en Base64URL separadas por puntos: `header.payload.signature`. El header describe el algoritmo, el payload contiene los claims y la signature se usa para verificar la integridad.
¿Qué es la codificación Base64URL?
Base64URL es una variante de Base64 que usa `-` en lugar de `+` y `_` en lugar de `/`, y omite el relleno `=`. Esto hace que la cadena codificada sea segura para usar en URLs y JSON.
Does this tool verify the JWT signature?
No. This tool only decodes the token — it does not verify the signature. Decoding tells you what the token claims, but anyone can create a token with any claims. Verification requires the signing secret (for HMAC algorithms like HS256) or the public key (for RSA algorithms like RS256, or ECDSA algorithms like ES256). Never trust a JWT's claims for security decisions without verifying its signature first. If you need to verify a JWT, use a library like jsonwebtoken (Node.js), PyJWT (Python), or jose (JavaScript/TypeScript) with the correct secret or key.
Is it safe to paste my JWT here?
Yes. All decoding happens locally in your browser using JavaScript. The token is never sent to a server, never stored, and never logged. You can verify this by opening your browser's DevTools Network tab — no network requests are made when you paste or decode a token. However, you should still avoid pasting tokens into untrusted sites, and never share JWTs in screenshots, support tickets, or public channels. Even though our tool is safe, other online JWT decoders may upload your token to their server.
¿Qué significan las claims iat, nbf y exp?
Estas son claims registradas definidas en RFC 7519 que controlan la validez temporal del token. `iat` (issued at) es una marca de tiempo Unix que indica cuándo se creó el token. `nbf` (not before) es una marca de tiempo Unix que indica la hora más temprana en que el token se considera válido — antes de este momento, el token debe rechazarse. `exp` (expiration) es una marca de tiempo Unix que indica cuándo expira el token — después de este momento, el token debe rechazarse. Las tres se almacenan como segundos desde la época Unix (1 de enero de 1970, 00:00:00 UTC). Nuestra herramienta analiza estas claims y muestra un estado codificado por colores: verde para activo, amarillo para aún no válido y rojo para expirado.
¿Por qué mi token tiene tres partes?
A JWT consists of three Base64URL-encoded parts separated by dots: `header.payload.signature`. The header describes the token type (JWT) and the signing algorithm (e.g., HS256, RS256). The payload contains the claims — statements about an entity (typically the user) and additional metadata. The signature is used to verify that the sender of the JWT is who it says it is and to ensure that the message wasn't changed along the way. To decode a JWT, you only need to Base64URL-decode the header and payload — the signature is not decoded, it's a binary value used only for verification.
What is Base64URL encoding and how is it different from Base64?
Base64URL is a variant of Base64 designed to be safe for use in URLs and filenames. It replaces the `+` character with `-` and the `/` character with `_`, and it omits the `=` padding character at the end. This is necessary because `+` and `/` have special meanings in URLs (they represent spaces and path separators, respectively). JWT uses Base64URL for encoding the header, payload, and signature. If you try to decode a JWT part with standard Base64, you may get an error because `-` and `_` are not valid standard Base64 characters.
What are the most common JWT claims?
The most common registered claims are: `sub` (subject — the user ID), `iss` (issuer — who issued the token), `aud` (audience — who the token is intended for), `exp` (expiration time), `nbf` (not before), `iat` (issued at), and `jti` (JWT ID — a unique identifier for the token). Custom claims can also be included, such as `role`, `permissions`, `email`, or `name`. Our tool displays all claims in the payload as a formatted JSON object.
Can I decode a JWT without the secret key?
Yes. Decoding a JWT does not require the secret key — you only need to Base64URL-decode the header and payload. The secret key is only required for verifying the signature, which confirms that the token was issued by a trusted party and hasn't been tampered with. This is a common source of confusion: decoding is not the same as verifying. Anyone can decode a JWT, but only someone with the secret key can verify it.
What happens if I paste an invalid JWT?
The tool will display an error message indicating what went wrong. Common errors include: not having exactly three dot-separated parts, containing characters that are not valid Base64URL, or having a payload that is not valid JSON after decoding. The error message will tell you exactly what is wrong so you can fix the input.
¿Funciona la herramienta en dispositivos móviles?
Yes. The tool is fully responsive and works on iOS Safari and Android Chrome. The interface adapts to small screens with a vertical layout — input at the top, decoded header and payload in the middle, and claim status at the bottom. Decoding runs locally on your phone, so it works even on slow network connections.
¿Puedo usar esta herramienta para proyectos comerciales?
Yes. The tool is free for both personal and commercial use with no watermarks, no attribution required, and no usage limits. You retain full ownership of your tokens. There is no registration, no API key, and no subscription required.

Su privacidad es nuestra prioridad

Esta herramienta se ejecuta completamente en su navegador. Sus archivos no se suben a un servidor, no se almacenan ni se analizan.

  • No subimos, almacenamos ni analizamos sus archivos.
  • Todo lo que procesa permanece en su dispositivo.
  • No hay procesamiento del lado del servidor, ni almacenamiento en la nube, ni análisis.

Incluso si su conexión a internet se cae, sus archivos permanecen seguros.

También te podría gustar

Guias utiles

Publicidad