🛠️ToolsShed

JWT Decoder

Decodifica e inspecciona payloads de JWT sin verificación de firma.

Esta herramienta solo decodifica el JWT — NO verifica la firma. Nunca compartas tokens sensibles.

El decodificador de JWT descodifica tokens JSON Web (JWT) para que puedas inspeccionar la cabecera, el payload y la firma sin escribir ningún código. Un JWT es un token compacto y seguro para URL que consta de tres secciones codificadas en Base64 separadas por puntos: la cabecera de algoritmo, el payload de claims y una firma criptográfica.

Pega cualquier JWT en el campo de entrada y la herramienta lo divide instantáneamente en sus tres componentes y muestra el JSON de cada sección formateado. Puedes ver el tiempo de expiración, la marca de tiempo de emisión y los claims de usuario del token.

Esta herramienta solo decodifica — no verifica la firma. Siempre valida los JWT del lado del servidor usando la clave secreta o pública apropiada antes de confiar en los claims. Ningún dato del token sale de tu navegador.

Preguntas Frecuentes

Implementación de Código

import jwt  # pip install PyJWT

token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkFsaWNlIiwiaWF0IjoxNzAwMDAwMDAwLCJleHAiOjE3MDAwMDM2MDB9.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c"
secret = "your-256-bit-secret"

# Decode and verify signature + expiry
try:
    payload = jwt.decode(token, secret, algorithms=["HS256"])
    print(payload)
    # {"sub": "1234567890", "name": "Alice", "iat": 1700000000, "exp": 1700003600}
except jwt.ExpiredSignatureError:
    print("Token has expired")
except jwt.InvalidTokenError as e:
    print(f"Invalid token: {e}")

# Decode without verification (inspect only — never trust unverified)
unverified = jwt.decode(token, options={"verify_signature": False})
print(unverified)

# Decode manually (no library) — Base64Url decode the payload
import base64, json
parts = token.split(".")
# Add padding back (Base64Url omits =)
payload_b64 = parts[1] + "=" * (-len(parts[1]) % 4)
payload = json.loads(base64.urlsafe_b64decode(payload_b64))
print(payload)

# Encode (create) a JWT
encoded = jwt.encode({"sub": "123", "name": "Alice"}, secret, algorithm="HS256")

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.