/ seguridad / jwt
Suscriptor
Tema: SistemaContraste: Estándar

Decodificador y verificador de JWT

Fijar en tus herramientas

Decodifica un JSON Web Token, comprueba su caducidad y sus claims, y verifica su firma con un secreto o una clave pública.

Funciona por completo en tu navegador. Lo que escribes nunca se envía a nuestros servidores.

Carga útil
token · 0 líneas
PegarAbrir archivoCtrl OBorrar

Carga útil

Vista
carga útil · 0 líneas
DescargarCopiarCtrl Shift C

Un secreto para HS256/384/512, una clave pública en PEM (SPKI o certificado) para las demás, o un JWK o JWKS (la clave se elige por el kid del token). La clave nunca se comparte ni se guarda.

localprobado · v0.15.0 · 37 casos de prueba

historial · 0

Las entradas procesadas aparecen aquí mientras esta página esté abierta. Al recargar la página se borra la lista.

Ejemplos de código

Copia estos ejemplos en tu propio proyecto. Cada uno usa solo la biblioteca estándar del lenguaje, así que no hay nada que instalar.

Ejemplo

Marca con una estrella hasta 3 lenguajes para verlos primero en todas las páginas de herramientas.

Marcar JavaScript como favorito
const token = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c'

const payload = token.split('.')[1]
const json = Buffer.from(payload, 'base64url').toString('utf8')

console.log(JSON.stringify(JSON.parse(json), null, 2))

Qué hace

Decodifica un JSON Web Token para leer su cabecera y su carga útil, comprueba si ha caducado y verifica su firma con un secreto o una clave pública. El token se decodifica en tu navegador, esta página no muestra anuncios y el token y la clave nunca se comparten ni se guardan.

Cómo usarla

  1. Pega el token. Se ignoran el prefijo Bearer y los saltos de línea.
  2. Lee la carga útil como JSON con formato o compacto. Debajo ves el algoritmo, el estado y las fechas exp, nbf e iat junto con lo lejos que están de ahora.
  3. Para verificar la firma, introduce la clave: un secreto para HS256, HS384 y HS512, o una clave pública (PEM o JWK) para RS, PS, ES y EdDSA.
  4. Cambia la cabecera y el payload entre JSON y Claims: Claims lista cada claim con su significado y muestra los claims de tiempo como fechas.
  5. Abre la pestaña Codificar para escribir una cabecera y un payload y firmarlos con un secreto o una clave privada (PEM PKCS#8 o JWK). Nada de esa pestaña se guarda, se comparte ni se añade al historial.

Ejemplos

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c

La carga útil de ese token:

{
  "sub": "1234567890",
  "name": "John Doe",
  "iat": 1516239022
}

Su firma se verifica con el secreto your-256-bit-secret.

Conviene saber

  • Decodificar no es verificar: la carga útil solo está codificada, no cifrada, y cualquiera puede leerla.
  • Tu servidor debe verificar la firma antes de fiarse de cualquier claim.
  • Un token con el algoritmo none no está firmado, así que cualquiera podría haberlo creado.
  • Trata los tokens reales como contraseñas. Si puedes, pega aquí tokens caducados o de prueba.
  • Un JWKS pegado se busca por el kid del token, y un JWK suelto se usa tal cual. La página nunca descarga un conjunto de claves del emisor del token.
  • Un secreto HMAC más corto que su hash (32, 48 o 64 bytes) se puede adivinar, por eso la página te avisa. Un secreto se puede leer como texto UTF-8 o como Base64URL.

¿Qué es un JWT?

Un JSON Web Token son tres partes Base64URL unidas por puntos: una cabecera con el algoritmo de firma, una carga útil con claims (para quién es el token, cuándo caduca) y una firma. Cualquiera puede leer las dos primeras partes; solo la firma prueba que el token viene de alguien que tiene la clave.

Preguntas frecuentes

¿Decodificar un token es lo mismo que verificarlo?

No. Decodificar solo lee el contenido, que no está cifrado. Verificar comprueba la firma con la clave, y tu servidor debe hacerlo antes de fiarse de cualquier claim.

¿Qué significan exp, nbf e iat?

exp es cuándo caduca el token, nbf el momento antes del cual no es válido e iat cuándo se emitió, todo en segundos desde 1970. Esta herramienta los compara con el reloj de tu dispositivo.

¿Es seguro pegar aquí un token real?

El token se decodifica en tu navegador y nunca se envía a nuestros servidores, y esta página no muestra anuncios. Aun así, trata los tokens vivos como contraseñas: mejor usa tokens caducados o de prueba.

Cambios de esta herramienta

Atajos de teclado

Cerrar

En todas partes

Buscar herramientas y acciones
Ctrl K
Mostrar esta ayuda
?
Cambiar de tema
Ctrl Shift L
Fijar la herramienta seleccionada (en la búsqueda)
Ctrl P

En una herramienta

Enviar la salida a la primera sugerencia
Ctrl ↵
Abrir un archivo en la entrada
Ctrl O
Copiar la salida
Ctrl Shift C
Cerrar búsquedaesc
herramientasCodificador y decodificador Base64Codifica texto en Base64 o decodifica Base64 a texto, con el alfabeto estándar o seguro para URL.CodificaciónFormateador y validador de JSONFormatea, minifica y valida JSON, con la línea y la columna exactas de cada error.FormatoProbador de regexPrueba expresiones regulares de JavaScript con resaltado en vivo, grupos de captura y una explicación en lenguaje sencillo.TextoGenerador de UUID y ULIDGenera UUID v4, UUID v7 y ULID en masa, o pega un identificador para ver su versión, variante y marca de tiempo.GeneradoresConversor de timestamp UnixConvierte timestamps Unix en fechas y viceversa, en cualquier zona horaria, con ISO 8601, RFC 2822 y tiempo relativo.Fecha y horaGenerador de hash y HMACCalcula hashes MD5, SHA-1, SHA-2, SHA-3, BLAKE2, BLAKE3 y CRC-32 de un texto o un archivo, con HMAC opcional.SeguridadGenerador de contraseñas y medidor de seguridadGenera contraseñas, frases de contraseña y PIN aleatorios, o comprueba lo segura que es una contraseña.SeguridadDecodificador y verificador de JWTDecodifica un JSON Web Token, comprueba su caducidad y sus claims, y verifica su firma con un secreto o una clave pública.SeguridadCalculadora CIDR y de subredes IPCalcula el rango, la máscara y el tamaño de redes IPv4 e IPv6, divídelas en subredes y comprueba qué contiene o se solapa con qué.RedExplicador de expresiones cronLee una expresión cron en lenguaje natural, mira sus próximas ejecuciones en cualquier zona horaria y déjala en su forma estándar.Fecha y horaOrdenar líneasOrdena líneas de texto de A a Z o de Z a A, en orden natural (file2 antes que file10), por punto de código, por número o por longitud.TextoQuitar líneas duplicadasQuita las líneas duplicadas de una lista, conserva la primera o la última copia, ignora mayúsculas o espacios, o elimina toda línea repetida.TextoComparar listas y textoCompara dos listas línea a línea: encuentra lo que está en ambas, solo en una o en cualquiera, o mira un diff de líneas marcado lado a lado.TextoConvertir mayúsculas y crear slugConvierte texto a camelCase, snake_case, kebab-case, Title Case y más, o transforma un título en un slug de URL con manejo de acentos.TextoCodificar, decodificar y analizar URLCodifica y decodifica texto con porcentajes para URL, o descompón una URL en esquema, host, ruta y consulta y edita la consulta como una tabla.CodificaciónValidadores: IBAN, BSN, IVA, tarjeta, ISBNComprueba un IBAN, un BSN neerlandés, un número de tarjeta, un número de IVA de la UE, un email, una URL o un ISBN, con el motivo si falla. Un valor por línea.ValidaciónCodificar y decodificar entidades HTMLEscapa texto para HTML con entidades con nombre, decimales o hexadecimales, o convierte entidades como & y é de nuevo en caracteres.CodificaciónEscapar y desescapar cadenasEscapa texto para una cadena JSON o JavaScript, una cadena SQL, un campo CSV, una expresión regular o una palabra de shell, o deshaz el escape.CodificaciónDígitos de control EAN, UPC y GTINComprueba el dígito de control de un EAN-8, EAN-13, UPC-A o GTIN-14, añade el que falta, lee el país del prefijo GS1 y convierte entre ISBN-10 y EAN-13. Un código por línea.ValidaciónGenerador de datos de pruebaGenera en masa IBAN, BSN, códigos EAN y números de IVA europeos de prueba. Pasan las comprobaciones, pero no pertenecen a nadie.GeneradoresFormateador y minificador de SQLDa formato a SQL con cada cláusula en su línea, o minifícalo en una sola línea, para MySQL, PostgreSQL, SQLite, SQL Server y BigQuery.FormatoConversor de base numéricaConvierte números entre binario, octal, decimal, hexadecimal y cualquier base de 2 a 36, con números grandes, complemento a dos y vista de bits.CodificaciónConversor de YAML, TOML y JSONConvierte entre JSON, YAML y TOML, o valida y da formato a un documento, con la línea y la columna de cada error.FormatoConversor de CSV y JSONConvierte CSV en un array JSON de objetos o arrays, o JSON de vuelta a CSV. Detecta el separador y lee archivos de Excel con punto y coma y coma decimal.DatosProbador de glob y .gitignorePrueba patrones glob y reglas .gitignore con una lista de rutas y mira qué rutas coinciden y qué regla lo hizo.TextoConversor de colorConvierte un color entre HEX, RGB, HSL, HWB y OKLCH, comprueba su contraste WCAG con un fondo o crea con él una paleta tonal de Material 3.FormatoCalculadora chmodConvierte permisos de archivos Unix entre octal (755), letras (rwxr-xr-x), ls -l y cláusulas chmod, con una cuadrícula de casillas y los bits setuid, setgid y sticky.SeguridadAnalizador de user-agentLee una cadena user-agent: navegador, motor, sistema operativo, tipo de dispositivo y si es un bot. Déjalo vacío para leer tu propio navegador.RedConvertir cURL en códigoPega un comando cURL y obtén la misma petición en fetch, Axios, Python requests, Go o PHP. No se ejecuta nada y no se envía nada.RedVista previa de MarkdownEscribe Markdown y míralo renderizado mientras tecleas, o copia el HTML. El HTML en bruto se muestra como texto y los enlaces se comprueban, así que nada de la vista previa puede ejecutarse.FormatoGenerador de códigos de barras y QRCrea un código QR, EAN-13, UPC-A, Code 128, ITF-14 o Data Matrix, descárgalo como SVG o PNG, o lee un código desde una imagen.GeneradorespáginasCambiosQué cambió en cada versiónpáginasAcerca deQué es codeknife.dev y quién lo hacepáginasIdeasSugiere mejoras y vota por las ideas de otros visitantes.páginasPrivacidadQué sale de tu navegador y qué se guardapáginasAccesibilidadConformidad, limitaciones conocidas y cómo informar de un problemapáginasSuscripciónQuita los anuncios y amplía los límitespáginasacciones