JWT Decoder
JSON Web Token (JWT) header ve payload'unu çözün. Algoritma, expiry ve diğer bilgileri görüntüleyin. Tarayıcıda anında çalışır, kayıt gerekmez, ücretsizdir.
JWT Decoder
RFC 7519JWT (JSON Web Token) Nedir?
JWT, modern web uygulamalarında kullanıcı kimlik doğrulama ve yetkilendirme için kullanılan, RFC 7519 standardıyla tanımlanmış bir token formatıdır. İçinde JSON verisi taşır, kompakt ve URL-safe'dir. API'lerde, OAuth flow'larında, mobil uygulamalarda yaygın olarak görürsünüz.
JWT'nin temel mantığı şudur: sunucu, kullanıcının kim olduğunu kanıtlayan imzalı bir token üretir, kullanıcı bu token'ı her istekte gönderir, sunucu imzayı doğrulayıp "evet bu gerçekten bizim verdiğimiz token" diye onaylar. Stateless mimari için idealdir, sunucuda session saklamak gerekmez.
JWT Yapısı — 3 Bölüm
Bir JWT, nokta (.) ile ayrılmış 3 base64URL kodlanmış parçadan oluşur:
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9 . eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ . SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
1. Header (Başlık)
Token'ın türünü ve imzalama algoritmasını belirtir:
{
"alg": "HS256",
"typ": "JWT"
}
Yaygın algoritmalar:
- HS256 (HMAC-SHA256): Simetrik, paylaşılan secret kullanır
- RS256 (RSA-SHA256): Asimetrik, public/private key çifti
- ES256 (ECDSA): RSA'dan daha verimli eliptik eğri
- none: İmza YOK (asla production'da kullanmayın)
2. Payload (Yük)
Asıl veri burada. Claims (iddialar) denilen alanlar:
{
"sub": "1234567890",
"name": "Ahmet Yılmaz",
"role": "admin",
"iat": 1716480000,
"exp": 1716483600
}
Standart claim'ler (RFC 7519):
- iss (issuer): Token'ı kim üretti
- sub (subject): Token kime ait
- aud (audience): Token hangi servis için
- exp (expiration): Geçerlilik bitiş zamanı (UNIX timestamp)
- nbf (not before): Geçerlilik başlangıcı
- iat (issued at): Üretildiği zaman
- jti (JWT ID): Benzersiz token kimliği
3. Signature (İmza)
Header + Payload, secret veya private key ile imzalanır. İmza, token'ın değiştirilmediğini kanıtlar. Eğer payload'a "role: admin" eklerseniz ama imza eski kalırsa, doğrulama başarısız olur.
JWT'nin Avantajları
- Stateless: Sunucu session saklamaz, ölçeklenebilir
- Kompakt: URL, header veya cookie'de taşınabilir
- Self-contained: Tüm bilgi token'da var, ek DB sorgusu gerekmez
- Cross-domain: Farklı domain'ler arası kimlik aktarımı kolay
- Standardized: Tüm büyük diller için kütüphaneler var
Güvenlik Riskleri ve Doğru Kullanım
- Payload şifrelenmemiştir: Sadece encode edilmiş. İçinde şifre, kredi kartı gibi hassas veri OLMASIN
- Kısa süre kullanın:
expclaim'i ile 15-60 dakika ideal, refresh token ile uzatın - HTTPS zorunlu: HTTP'de gönderilen JWT yolda dinlenebilir
- "alg: none" kabul etmeyin: Bazı kütüphaneler buna izin verir, güvenlik açığı
- Secret rotasyon: HS256 kullanıyorsanız secret'ı 3-6 ayda bir değiştirin
- Token revocation zor: Kullanıcıyı zorla logout yapmak için ek mekanizma gerekir (blacklist)
JWT Ne Zaman Kullanmamalı?
JWT her durum için ideal değildir:
- Anlık iptal gerekiyorsa: Session yöntemi daha esnektir
- Çok hassas işlemler: Banking için klasik session+CSRF token tercih edin
- Çok büyük payload: Token şişer, her istek bandwidth tüketir
- Bilgi gizliliği kritik: JWT base64 ile decode edilebilir, içeriği herkes görür
Sıkça Sorulan Sorular
JWT decode etmek güvenlik riski mi?
JWT imzasını kırabilir miyim?
JWT ne kadar süre geçerli olmalı?
JWT'yi cookie'de mi header'da mı taşımalıyım?
JWT'yi nasıl iptal ederim (logout)?
İlgili Araçlar
- Base64 Encode/Decode — JWT parçaları base64 ile encode'lanır
- Hash Üretici (SHA) — JWT imzalamada SHA-256 kullanılır
- Bcrypt Hash — Şifreler için (JWT secret değil)
- UUID Üretici — JWT jti claim için
İlgili Araçlar
Base64 Encode / Decode
Metni Base64 formatına şifreleyin veya Base64 kodu düz metne çözün. UTF-8 ve Türkçe karakter destekli.
🛡Bcrypt Hash Üretici
Şifrelerinizi bcrypt algoritmasıyla hash'leyin veya bir bcrypt hash'i şifre ile karşılaştırın. Cost faktörü ayarlanabilir.
📦CSS / JS Sıkıştırıcı
CSS ve JavaScript kodunu sıkıştırın. Boşluk, yorum ve gereksiz karakterleri kaldırarak dosya boyutunu küçültür.