🛠️ToolsShed

Decodificatore JWT

Decodifica e ispeziona i payload JSON Web Token senza verifica della firma.

Questo strumento decodifica solo il JWT — non verifica la firma. Non condividere mai token sensibili.

Il decodificatore JWT decodifica i JSON Web Token (JWT) in modo che tu possa ispezionare l'intestazione, il payload e la firma senza scrivere alcun codice. Un JWT è un token compatto e sicuro per gli URL che consiste in tre sezioni codificate in Base64 separate da punti: l'intestazione dell'algoritmo, il payload dei claim e una firma crittografica.

Incolla qualsiasi JWT nel campo di input e lo strumento lo divide istantaneamente nei suoi tre componenti e visualizza il JSON di ciascuna sezione formattato. Puoi vedere il tempo di scadenza del token, il timestamp di emissione e i claim utente.

Questo strumento si limita a decodificare — non verifica la firma. Valida sempre i JWT lato server usando la chiave segreta o pubblica appropriata prima di fidarsi dei claim. Nessun dato del token lascia il tuo browser.

Domande Frequenti

Implementazione del Codice

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.