UTILSBOX⚡TODAS LAS TOOLS54+
JSON.FORMATHub de cinco herramientas: formatear, validar, minificar, pasar a XML y comparar dos JSON.//REGEX.TESTERProbador de expresiones regulares en tiempo real con explicación y reemplazo.//PDF.SUITEUnir, dividir, extraer texto, rotar y convertir páginas PDF a imágenes.//IMAGE.STUDIOEditor de fotos en el navegador: recortar, filtros, WebP, PNG y Base64.//HTML.BEAUTIFYFormateador de código HTML, minificador y codificador de entidades.//CSS.MINIFYFormateador de CSS, minificador para producción y conversor CSS a SCSS.//SQL.FORMATTEREmbellecedor de queries SQL, traductor entre dialectos y minificador.//SVG.EXCALIDRAWEditor visual vectorial integrado con Excalidraw y formateador SVG.//TEXT.DIFFContador de palabras, caracteres, tiempo de lectura y comparador Diff.//YAML.CONVERTValidador y formateador de archivos YAML/JSON con detección de sintaxis.//XML.PARSERFormateador de documentos XML, inspector de árbol y conversor a JSON.//GRAPHQL.STUDIOFormateador de queries y schemas SDL, minificador y clasificador AST.//BASE64.CODECCodificador y decodificador Base64 y URL-Safe con soporte UTF-8.//PASSWORD.GENGenerador de contraseñas criptográficamente seguras con medidor de entropía.//URL.STUDIOSuite de 8 herramientas: encode, decode, parse, build y query string.//QR.STUDIOCreador de códigos QR personalizados con logos, colores y degradados.//ASCII.EXPLORERTabla interactiva ASCII 0-255, atajos de teclado Alt y códigos CP437.//KEYCODES.LIVEDetector en vivo de eventos KeyboardEvent y tabla de códigos JavaScript.//JWT.DEBUGGERDecodificador de tokens JWT, claims y verificación de firma con Web Crypto.//BINARY.CODECConversor bidireccional texto a binario con lluvia Matrix y desglose ASCII.//CHARTS.STUDIOGenerador de gráficos interactivos (barras, líneas, torta) a partir de CSV.//UUID.V7Generador masivo de UUID v4, v7 ordenado por tiempo, v1 y validador.//CSV.JSONConversor bidireccional CSV a JSON con delimitadores y visor de tablas.//COLORS.STUDIOConvertidor HEX/RGB/HSL/CMYK, armonías cromáticas y contraste WCAG 2.1.//SEO.METAGenerador de Meta Tags, Open Graph y preview en vivo de Google SERP.//SCHEMA.JSONLDGenerador de datos estructurados Schema.org para Google Rich Snippets.//SITEMAP.XMLGenerador de sitemaps XML estándar (Protocolo 0.9) para Google y Bing.//ROBOTS.TXTGenerador de robots.txt, bloqueo de scrapers de IA y probador de rutas.//FAKE.DATAGenerador de mocks y datos sintéticos: exporta a JSON, CSV, SQL y TypeScript.//CLOCK.WORLDReloj mundial en tiempo real con globo 3D holográfico y husos horarios.//DATE.CALCDías entre fechas, edad exacta, días hábiles, Unix timestamp y cron parser.//CALC.SUITESuite de 56+ calculadoras: porcentajes, hipotecas, préstamos, IVA, IMC y sueldos.//JSON.FORMATHub de cinco herramientas: formatear, validar, minificar, pasar a XML y comparar dos JSON.//REGEX.TESTERProbador de expresiones regulares en tiempo real con explicación y reemplazo.//PDF.SUITEUnir, dividir, extraer texto, rotar y convertir páginas PDF a imágenes.//IMAGE.STUDIOEditor de fotos en el navegador: recortar, filtros, WebP, PNG y Base64.//HTML.BEAUTIFYFormateador de código HTML, minificador y codificador de entidades.//CSS.MINIFYFormateador de CSS, minificador para producción y conversor CSS a SCSS.//SQL.FORMATTEREmbellecedor de queries SQL, traductor entre dialectos y minificador.//SVG.EXCALIDRAWEditor visual vectorial integrado con Excalidraw y formateador SVG.//TEXT.DIFFContador de palabras, caracteres, tiempo de lectura y comparador Diff.//YAML.CONVERTValidador y formateador de archivos YAML/JSON con detección de sintaxis.//XML.PARSERFormateador de documentos XML, inspector de árbol y conversor a JSON.//GRAPHQL.STUDIOFormateador de queries y schemas SDL, minificador y clasificador AST.//BASE64.CODECCodificador y decodificador Base64 y URL-Safe con soporte UTF-8.//PASSWORD.GENGenerador de contraseñas criptográficamente seguras con medidor de entropía.//URL.STUDIOSuite de 8 herramientas: encode, decode, parse, build y query string.//QR.STUDIOCreador de códigos QR personalizados con logos, colores y degradados.//ASCII.EXPLORERTabla interactiva ASCII 0-255, atajos de teclado Alt y códigos CP437.//KEYCODES.LIVEDetector en vivo de eventos KeyboardEvent y tabla de códigos JavaScript.//JWT.DEBUGGERDecodificador de tokens JWT, claims y verificación de firma con Web Crypto.//BINARY.CODECConversor bidireccional texto a binario con lluvia Matrix y desglose ASCII.//CHARTS.STUDIOGenerador de gráficos interactivos (barras, líneas, torta) a partir de CSV.//UUID.V7Generador masivo de UUID v4, v7 ordenado por tiempo, v1 y validador.//CSV.JSONConversor bidireccional CSV a JSON con delimitadores y visor de tablas.//COLORS.STUDIOConvertidor HEX/RGB/HSL/CMYK, armonías cromáticas y contraste WCAG 2.1.//SEO.METAGenerador de Meta Tags, Open Graph y preview en vivo de Google SERP.//SCHEMA.JSONLDGenerador de datos estructurados Schema.org para Google Rich Snippets.//SITEMAP.XMLGenerador de sitemaps XML estándar (Protocolo 0.9) para Google y Bing.//ROBOTS.TXTGenerador de robots.txt, bloqueo de scrapers de IA y probador de rutas.//FAKE.DATAGenerador de mocks y datos sintéticos: exporta a JSON, CSV, SQL y TypeScript.//CLOCK.WORLDReloj mundial en tiempo real con globo 3D holográfico y husos horarios.//DATE.CALCDías entre fechas, edad exacta, días hábiles, Unix timestamp y cron parser.//CALC.SUITESuite de 56+ calculadoras: porcentajes, hipotecas, préstamos, IVA, IMC y sueldos.//
MODULE 18 · SECURITY

Decodificador y Verificador JWT

Pegá un JSON Web Token para inspeccionar su header, payload y firma — 100% en tu navegador con Web Crypto, nunca se manda a ningún servidor.

JWT Tokenpegalo acá
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6Ik5lbyBBbmRlcnNvbiIsInJvbGUiOiJuZXRydW5uZXIiLCJpc3MiOiJ0b29sYm94LmRldiIsImF1ZCI6InRvb2xib3gtY2xpZW50cyIsImlhdCI6MTc4ODQxMDUzMCwiZXhwIjoxNzkxMDAyNTMwfQ.mfTQP5T-mzHjk0WVobI-nRHK5W58dz5DKUt6uZi48E4
HeaderHS256
{ "alg": "HS256", "typ": "JWT" }
Payloadclaims
{ "sub": "1234567890", "name": "Neo Anderson", "role": "netrunner", "iss": "toolbox.dev", "aud": "toolbox-clients", "iat": 1788410530, "exp": 1791002530 }
⚠ EXPIRADOvenció hace 2d
Claims estándar
subSubject · a quién representa"1234567890"
issIssuer · quién lo emitió"toolbox.dev"
audAudience · para quién es"toolbox-clients"
iatIssued At · emitido1788410530 · 9/3/2026, 4:42:10 AM
expExpiration · vence1791002530 · 10/3/2026, 4:42:10 AM
Claims personalizadas
name—"Neo Anderson"
role—"netrunner"
Signatureverificar integridad
mfTQP5T-mzHjk0WVobI-nRHK5W58dz5DKUt6uZi48E4
// Guía técnica y especificaciones

Guía técnica: JSON Web Token (RFC 7519), algoritmos JOSE y validación de firma

Qué contiene cada segmento de un token, en qué se diferencian HS256, RS256 y ES256, y qué comprobaciones exige el RFC 8725.

1. Los tres segmentos: cabecera JOSE, claims registrados y firma

Un JWT en serialización compacta (JWS, RFC 7515) son tres cadenas Base64URL sin padding separadas por puntos: cabecera.payload.firma. La cabecera declara "alg" y, opcionalmente, "kid" para identificar la clave dentro de un JWKS. El payload transporta los claims registrados de la sección 4.1 del RFC 7519: "iss", "sub", "aud", "exp", "nbf", "iat" y "jti". Los tres temporales usan el tipo NumericDate, es decir segundos Unix y no milisegundos: pasar Date.now() sin dividir entre 1000 genera tokens que expiran en el año 57000 y que ningún validador rechazará. La firma cubre exactamente la cadena ASCII "base64url(header).base64url(payload)", así que reescribir el JSON con otro orden de claves o con otra indentación ya invalida el token.

2. HS256 frente a RS256 y ES256: qué familia elegir

HS256 calcula un HMAC-SHA-256 con un secreto compartido, de modo que quien puede verificar también puede emitir. Es razonable en un monolito que firma y valida sus propias sesiones, siempre con una clave aleatoria de al menos 256 bits: el RFC 7518 exige que la clave HMAC tenga como mínimo el tamaño de la salida del hash. RS256 firma con RSASSA-PKCS1-v1_5 y una clave privada de 2048 bits o más, y los consumidores solo necesitan la pública, habitualmente publicada en /.well-known/jwks.json. ES256 (ECDSA sobre la curva P-256) da seguridad equivalente con firmas de 64 bytes frente a los 256 bytes de RSA-2048, algo relevante cuando el token viaja en cada cabecera Authorization.

3. Ataques documentados en el RFC 8725: alg none, confusión de algoritmo e inyección de claves

El RFC 8725 recopila los fallos que más se repiten en producción. Con "alg": "none" el atacante entrega un token sin firma y el validador lo acepta porque confía en una cabecera que él mismo controla; la defensa es fijar en el servidor una lista blanca de algoritmos. La confusión de algoritmo cambia RS256 por HS256 y firma usando la clave pública RSA como secreto HMAC, algo posible en librerías antiguas que recibían un único parámetro "key". La inyección por "jku", "x5u" o "kid" desvía la resolución de claves hacia un host o una ruta del atacante: hay que limitar "kid" a un conjunto conocido y nunca seguir URLs que vengan en la cabecera. Validar también "iss" y "aud" impide reutilizar un token legítimo de otro servicio.

// Arquitectura y buenas prácticas

❓ Preguntas frecuentes sobre JSON Web Tokens

¿Se puede revocar un JWT antes de que expire?

No de forma nativa: un JWS es autocontenido y el validador no consulta ningún estado. Los patrones habituales son un "exp" corto de 5 a 15 minutos acompañado de un refresh token opaco guardado en base de datos, una lista de denegación indexada por "jti" con TTL igual al del token, o un contador de versión de credenciales incluido como claim que se incrementa al cerrar sesiones.

¿Qué diferencia hay entre JWS y JWE?

JWS (RFC 7515) firma el payload pero lo deja legible: cualquiera que tenga el token puede decodificar el Base64URL y leer los claims. JWE (RFC 7516) cifra el contenido y tiene cinco segmentos en lugar de tres, con una cabecera que añade "enc" (por ejemplo A256GCM) junto a "alg". Si el payload lleva datos que no deben verse, hace falta JWE o simplemente no incluirlos.

¿Por qué la firma falla si el JSON decodificado parece correcto?

Porque la verificación se hace sobre los bytes exactos de los dos primeros segmentos, no sobre el objeto JSON resultante. Decodificar, reformatear y volver a codificar cambia espacios, orden de claves o padding "=" y produce una entrada distinta para el HMAC. También falla si el secreto tiene espacios invisibles al final o si la clave pública PEM se pegó sin las líneas BEGIN y END.

Herramientas de tokens y credenciales