Comparativa · Actualizada 2026-05-05
Las herramientas JWT de TaskKit vs jwt.io
Ambas herramientas decodifican y verifican JSON Web Tokens por completo en el navegador. Las diferencias prácticas están en lo que cada una carga junto al editor, en cómo se comporta ante una firma lenta o maliciosa, y en un puñado de funciones que una tiene y la otra no. El resumen de abajo está medido; el resto de la página enseña el cuadro completo.
Resumen
- Privacidad: TaskKit hace 0 peticiones a terceros en el primer paint. jwt.io hace 10 (consent de OneTrust, Adobe Experience Platform, Google Tag Manager).
- Algoritmos y formatos de clave: idénticos en ambos para la spec JWT — HS / RS / PS / ES / EdDSA, JWK y JWKS completo (con match por
kid),x5c, PEM PKCS#1 / PKCS#8 / X.509. TaskKit acepta además una clave EdDSA como hex crudo o cadena base64url. - Seguridad en runtime: TaskKit verifica firmas en un Web Worker con timeout de 2 segundos; un token hostil no puede congelar la página. jwt.io verifica en el hilo principal.
- Donde jwt.io es más fuerte: un directorio curado de librerías, una página de introducción extensa y enlaces por claim a los RFC correspondientes.
- Lo que TaskKit deja fuera deliberadamente: descarga automática de un JWKS desde una URL (requeriría una llamada saliente). Abrir el decodificador de TaskKit.
Privacidad, medida
Ambas herramientas afirman hacer su trabajo en el navegador. Esa afirmación solo vale algo si puedes verificarla. Cada página de abajo se cargó el 2026-05-05 en un perfil de Chrome limpio con caché borrada y se contaron todas las peticiones de red salientes antes de pulsar una sola tecla. El mismo test se ejecuta contra el decodificador JWT de TaskKit.
| Red en el primer paint | jwt.io | TaskKit |
|---|---|---|
| Peticiones a terceros | 10 | 0 |
| SDK de consentimiento OneTrust | Cargado (5 llamadas) | No |
| Adobe Experience Platform / DTM | Cargado (3 llamadas) | No |
| Google Tag Manager | Cargado | No |
| Geo-lookup | Endpoint geo de onetrust.com | No |
| Banner de consentimiento de cookies | Sí, bloquea el paint inicial hasta confirmar | Ninguno |
| Login obligatorio para funciones avanzadas | No | No |
Cada una de esas llamadas se dispara antes de que pegues un token. Ninguna es necesaria para que la página decodifique un JWT — son analítica, gestión de tags y flujo de consentimiento. TaskKit no envía nada de eso. Más sobre cómo TaskKit trata tus datos.
Matriz de funciones
Ambas herramientas cubren prácticamente toda la spec JWT. Abajo ves qué acepta cada una hoy, agrupado por categoría.
| Capacidad | jwt.io | TaskKit |
|---|---|---|
| Algoritmos | ||
| HS256 / 384 / 512 | Sí | Sí |
| RS256 / 384 / 512 | Sí | Sí |
| PS256 / 384 / 512 | Sí | Sí |
| ES256 / 384 / 512 | Sí | Sí |
| EdDSA (Ed25519) | Sí | Sí (vía @noble/ed25519) |
| Formatos de clave | ||
| JWK (suelto) | Sí | Sí |
| JWKS con lookup por kid | Sí | Sí |
| PEM SPKI (BEGIN PUBLIC KEY) | Sí | Sí |
| PEM PKCS#1 RSA (BEGIN RSA PUBLIC KEY) | Parcial | Sí (lector ASN.1 propio) |
| Certificado X.509 (BEGIN CERTIFICATE) | Sí | Sí (SPKI extraído automáticamente) |
| Header x5c usado automáticamente | Sí | Sí (cadena no validada, marcado explícito) |
| EdDSA crudo como hex / base64url | No | Sí (64 hex o 43 base64url) |
| Seguridad de verificación | ||
| Aislamiento en Web Worker | No | Sí |
| Timeout contra retroceso catastrófico | No | Sí (2s) |
| alg:none rechazado con explicación | Sí | Sí |
| Codificador | ||
| Editar header / payload | Sí | Sí |
| Campos de formulario para claims registrados | No | Sí |
| Claves privadas PKCS#1 aceptadas directamente | No | Sí (envueltas automáticamente en PKCS#8) |
| EdDSA privada como hex / base64url | No | Sí |
| Token de ejemplo con un clic | Sí | Sí (iat/exp actuales calculados en vivo) |
| Privacidad / Runtime | ||
| Procesamiento íntegro en el navegador | Sí | Sí |
| Cero peticiones a terceros | No | Sí |
| Diálogo de consentimiento de cookies | Sí | Ninguno |
| Cloudflare Web Analytics opcional (preserva privacidad, desactivado por defecto) | — | Off salvo que el operador lo active con token |
Seguridad en runtime
verify de WebCrypto es rápido con firmas bien formadas. Con
input hostil no lo es. Exponentes RSA patológicos, claves
sobredimensionadas, firmas Ed25519 corruptas o un JWKS construido con
mala intención pueden mantener al verificador ocupado lo suficiente para
congelar la pestaña — un riesgo real cuando el token que tienes delante
viene de una fuente no confiable.
TaskKit ejecuta la verificación de firma en un Web Worker dedicado con
un timeout wall-clock de 2 segundos. Si el worker excede el presupuesto,
se termina y la página muestra un error en lugar de quedarse colgada.
jwt.io verifica en el hilo principal, así que una firma lenta es una
página lenta. La misma arquitectura protege al probador de regex de
TaskKit (contra retroceso tipo (a+)+b) y al formateador
JSON (contra parseos de varios megabytes).
Detalles del editor que importan en el día a día
- Resaltado tricolor en la entrada. Las dos herramientas colorean los tres segmentos del token, pero jwt.io solo lo hace en un panel «Decoded» de solo lectura. TaskKit colorea los segmentos en el propio textarea donde editas, lo que facilita detectar un punto mal pegado.
- Etiquetas de claim siempre visibles. Los nombres
legibles de jwt.io (
iat → "Issued at") están detrás de una pestaña «Claims Breakdown». TaskKit los muestra en línea bajo el payload, así datos y descripciones quedan a la vista de un golpe. - Manejo honesto de
x5c. Cuando se usa el headerx5cde un token para verificar, el chip de resultado de TaskKit dice «verificado con el certificado x5c del header del token (cadena no validada)», sin sugerir confianza end-to-end. Validar la cadena hasta una autoridad raíz exigiría descargar las CA roots y queda fuera del alcance de una herramienta puramente en navegador. - Toggle base64url para HMAC. Algunas claves HMAC se
guardan como bytes codificados en base64url (por ejemplo, una clave
octde un JWKS con un campok). Un toggle pequeño junto al chip de algoritmo cambia la entrada del secreto entre cadena literal y bytes base64url, así no tienes que decodificar a mano. - Entrada de clave EdDSA en crudo. Pega un Ed25519 como 64 caracteres hex, 43 caracteres base64url, JWK o PEM. jwt.io solo espera PEM o JWK.
Donde jwt.io es más fuerte
Una comparativa útil no es un pitch unilateral. Tres cosas las hace jwt.io claramente mejor hoy:
- Directorio de librerías. Un índice curado y buscable de librerías JWT por lenguaje. Si buscas una implementación para un servicio, el directorio de jwt.io es la dirección correcta.
- Introducción extensa. Una página canónica «Qué es un JWT» que explica el concepto con la profundidad suficiente para transmitirlo de cabo a rabo. El texto explicativo bajo el decodificador de TaskKit es más corto y centrado en la herramienta.
- Enlaces por claim al RFC. Cada claim registrado enlaza a la sección del RFC que lo define. Una nimiedad, pero útil cuando estás revisando conformidad con la spec.
Lo que TaskKit deja fuera deliberadamente
Una garantía de privacidad es más fácil de mantener si no hay puertas traseras montadas. Algunas funciones que ofrecen otras herramientas faltan aquí a propósito.
- Auto-discovery OIDC. Algunas herramientas te dejan
pegar una URL de issuer y descargan en silencio
.well-known/openid-configurationpara obtener las claves. Eso es una petición saliente desde tu navegador a un tercero — y la propia URL puede revelar detalles del despliegue. TaskKit te exige que pegues el JWKS tú. - Campo "JWKS por URL". Misma justificación. Un
curlde una línea en tu terminal vence a un fetch saliente desde la página que estás depurando. - Analítica por defecto. El código soporta un token opcional de Cloudflare Web Analytics (preserva privacidad), pero queda desactivado salvo que el operador lo active explícitamente. La versión alojada en taskkit.net también lo tiene desactivado.
- Cuentas e historial del lado del servidor. Guardar y compartir ocurre por fragmentos de URL cuando se soporta. Nada se guarda en un servidor porque no hay servidor.
Prueba las herramientas JWT de TaskKit
Decodificador JWT
Pega un token, inspecciona claims y verifica la firma contra una clave, un JWKS o un certificado x5c embebido.
Codificador JWT
Firma tokens localmente con HS, RS, PS, ES o EdDSA. La clave privada se queda en la pestaña.
Metodología
Probado el 2026-05-05 en Chrome con caché y cookies first-party borradas. Las peticiones de red se contaron desde la carga de la página hasta la primera tecla pulsada. La matriz de funciones refleja el comportamiento de las dos herramientas a esa fecha y se vuelve a revisar cuando alguna de ellas publica un cambio relevante.
jwt.io es una marca de su titular respectivo. Esta página no está asociada con jwt.io ni cuenta con su respaldo.