JWT Decoder

JWT Çözücü / Kodlayıcı

Herhangi bir JSON Web Token'ı çözerek header, payload ve imzasını görün — ya da HS256/384/512 ile yenisini imzalayın. HMAC imzaları yerel olarak doğrular. %100 tarayıcınızda.

JWT Çözücü / Kodlayıcı — TL;DR

Herhangi bir JSON Web Token'ı çözerek header, payload ve imzasını görün — ya da HS256/384/512 ile yenisini imzalayın. HMAC imzaları yerel olarak doğrular. %100 tarayıcınızda.

Hayır. Tüm araç bu sayfanın içindeki JavaScript'tir. Bir token yapıştırın, çözüm tarayıcınızda gerçekleşir, baytlar sekmeden hiç çıkmaz. DevTools → Network'ü açıp izleyin — çözüm veya doğrulama sırasında istek gönderilmez. Bu, gerçek müşteri veya production token'larını yapıştırmayı güvenli kılar.

Token'ın gizli anahtarı (HMAC) veya özel anahtarı (RSA/ECDSA) elinde tutan biri tarafından imzalandığını kanıtlar. Payload'ı şifrelemez — header ve payload sadece base64url ile kodlanmış JSON'dur, token'a sahip olan herkes okuyabilir. İmza yalnızca kurcalamayı engeller: payload'ın tek bir baytını değiştirirseniz, imza artık eşleşmez.

Bir JWT genellikle kullanıcı kimliğini, e-postayı, scope'ları ve bazen oturum çerezlerinin eşdeğerini taşır — tam olarak bir yabancının sunucusuna yapıştırmamanız GEREKEN veriler. iKit'in çözücüsü, tarayıcı sekmenizde zaten yüklü olan JavaScript olarak çalışır. DevTools → Network'te doğrulanabilir: çözüm veya doğrulama sırasında fetch yok, XHR yok, beacon yok.

Header

Payload

İmza

Standart claim'ler


            

HMAC imzasını doğrula

HS256/384/512 token'ları için, imzayı yerel olarak doğrulamak üzere imzalama gizli anahtarını yazın. RS256/ES256 (RSA/ECDSA) için sunucu tarafı bir kütüphane kullanın — açık anahtarlı doğrulama, burada kabul etmediğimiz bir PEM dosyası gerektirir.

Neden iKit JWT Decoder

Bir JWT'yi debug etmenin en hızlı yolu — yükleme yok, kayıt yok, sizinle token'ınız arasında üçüncü taraf yok.

Üç panel, tek yapıştırma

Bir JWT yapıştırın; çözülmüş header, payload ve imzayı yan yana görün. Standart claim'ler (iss, sub, aud, exp, iat) zaman damgalı ve etiketlidir.

Yerel HMAC doğrulama

HS256/384/512 token'ları için, imzayı tarayıcının Web Crypto API'si ile doğrulamak üzere gizli anahtarı yazın. Gizli anahtar sekmenizden hiç çıkmaz.

Kendi token'ınızı imzalayın

Encode moduna geçin, header ve payload'u JSON olarak düzenleyin, algoritmayı seçin, bir gizli anahtar yazın ve anında imzalanmış bir token alın.

Tasarımdan gizlilik

JWT payload'ları kullanıcı kimliklerini, e-postaları, bazen scope'ları içerir — bunları asla bir sunucu aracına yapıştırmayın. iKit'in çözücüsü, tarayıcınızda JavaScript olarak çalışır. DevTools → Network'te doğrulanabilir.

Süre dolumu farkındalığı

exp, nbf, iat gibi standart claim'ler, insan tarafından okunabilir tarihlerle ve net bir SÜRESİ DOLDU / geçerli rozetiyle vurgulanır; böylece token'ın hâlâ geçerli olup olmadığını bir bakışta görebilirsiniz.

Açık standart, açık kod

Tarayıcının yerel Web Crypto API ve JSON ayrıştırıcısı üzerine kurulu — OpenSSL, libjwt, jose ile aynı algoritmalar. Davranış her modern JWT kütüphanesiyle örtüşür.

JWT çözme aslında nasıl çalışır

Bir JWT, noktalarla ayrılmış üç base64url kodlu JSON segmentidir — hepsi bu.

  1. 1

    İki noktadan ayır

    Bir JWT şuna benzer: aaa.bbb.ccc. İki gerçek noktadan ayırarak kodlanmış header, payload ve imzayı elde ederiz. Tam olarak üç parça almazsak, token bozuktur.

  2. 2

    Her parçayı Base64URL ile çöz

    Header ve payload, base64url ile kodlanmış UTF-8 JSON'dur. Base64URL = +//= yerine -/_ kullanan ve dolgu olmayan Base64. Karakterleri geri değiştirdikten sonra atob uygular, ardından oluşan dizeyi JSON.parse ederiz.

  3. 3

    Yapılandırılmış olarak göster

    Header bize algoritmayı (alg: HS256, RS256, vb.) ve türünü söyler. Payload claim'leri içerir — standart olanlar (iss, sub, aud, exp, iat, nbf, jti) ve özel alanlar. Her birini etiketli bir bölümde gösteririz.

  4. 4

    Doğrula (yalnızca HMAC)

    HS256/384/512 için, yazdığınız gizli anahtarla header.payload'un HMAC'ını yeniden hesaplar ve üçüncü segmentteki imzayla karşılaştırırız. HMAC(SHA-256, secret, signing_input) base64url kodlanmış haline eşittir. Eşleşme = imza geçerli.

Yaygın JWT debug görevleri

Bir JWT çözücüye uzanacağınız gerçek durumlar.

Auth sağlayıcınızdan gelen bir token'ı incelemek

Auth0, Firebase, Keycloak, AWS Cognito; girişten sonra hep JWT döndürür. Uygulamanızın gerçekte hangi claim'leri aldığını görmek için access_token'ı yapıştırın — kullanıcı kimliği nedir, hangi scope'lar var, ne zaman sona eriyor?

401 Unauthorized hata ayıklama

API isteğinizi reddediyor mu? Token'ı çözerek kontrol edin: süresi dolmuş mu (exp geçmişte mi)? audience claim'i (aud), API'nin beklediği gibi mi? düzenleyen (iss) doğru tenant mı?

Bir webhook imzasını doğrulama

Stripe, GitHub Apps, Slack; webhook payload'larını JWT olarak imzalı gönderir. Birini aldıktan sonra Decode moduna paylaşılan gizli anahtarla birlikte yapıştırarak isteğin gerçekten onlardan geldiğini doğrulayın.

Test token'ları üretme

Bir entegrasyon testi için yeni imzalanmış bir JWT mi gerek? Encode moduna geçin, payload'u düzenleyin (özel kullanıcı kimliği, özel sona erme), HS256 + test gizli anahtarınızı seçin, milisaniyeler içinde bir token alın. Backend'e gidip gelme yok.

Yerel JWT çözmenin önemi

Bir JWT genellikle kullanıcı kimliğini, e-postayı, scope'ları ve bazen oturum çerezlerinin eşdeğerini taşır — tam olarak bir yabancının sunucusuna yapıştırmamanız GEREKEN veriler. iKit'in çözücüsü, tarayıcı sekmenizde zaten yüklü olan JavaScript olarak çalışır. DevTools → Network'te doğrulanabilir: çözüm veya doğrulama sırasında fetch yok, XHR yok, beacon yok.

  • Çözüm veya doğrulama sırasında sıfır ağ isteği — DevTools'ta doğrulanabilir.
  • Doğrulama için yazdığınız gizli anahtar tarayıcı belleğinde kalır ve Temizle / yenileme işleminde silinir.
  • Production token'ları, müşteri erişim token'ları ve webhook gizli anahtarları için güvenli.

İlgili rehberler

iKit blogundan ayrıntılı rehberler ve araç karşılaştırmaları.

Sıkça Sorulan Sorular

Bu güvenli mi? JWT'lerim yükleniyor mu?

Hayır. Tüm araç bu sayfanın içindeki JavaScript'tir. Bir token yapıştırın, çözüm tarayıcınızda gerçekleşir, baytlar sekmeden hiç çıkmaz. DevTools → Network'ü açıp izleyin — çözüm veya doğrulama sırasında istek gönderilmez. Bu, gerçek müşteri veya production token'larını yapıştırmayı güvenli kılar.

JWT imzası gerçekte neyi doğrular?

Token'ın gizli anahtarı (HMAC) veya özel anahtarı (RSA/ECDSA) elinde tutan biri tarafından imzalandığını kanıtlar. Payload'ı şifrelemez — header ve payload sadece base64url ile kodlanmış JSON'dur, token'a sahip olan herkes okuyabilir. İmza yalnızca kurcalamayı engeller: payload'ın tek bir baytını değiştirirseniz, imza artık eşleşmez.

Çözülmüş payload'um doğru görünüyor ama doğrulama neden başarısız oluyor?

Üç yaygın neden: (1) yanlış gizli anahtar — JWT gizli anahtarları büyük/küçük harfe duyarlıdır ve herhangi bir boşluk uyumsuzluğu doğrulamayı bozar. (2) Algoritma uyumsuzluğu — header HS256 diyor ama gizli anahtar başlangıçta HS512 ile kullanıldı. (3) Token imzalandıktan sonra değiştirildi — tek bir bayt bile imzayı bozar. header.alg değerinin beklediğinizle eşleştiğini kontrol edin.

RS256, ES256 ve diğer açık anahtarlı algoritmalar ne olacak?

iKit şu anda yalnızca HMAC doğrulamayı (HS256/384/512) destekler. RS256 ve ES256 açık anahtarlı kriptografi kullanır — doğrulama, daha kapsamlı bir UI gerektiren PEM formatında düzenleyenin açık anahtarına ihtiyaç duyar. Şimdilik çözüm yine de çalışıyor (header/payload/imza parçaları doğru görüntülenir) ancak Doğrula düğmesi size desteklenmediğini söyleyecektir. RSA/ECDSA doğrulama planlanmaktadır.

Bu jwt.io'dan ne farkla ayrılıyor?

Aynı fikir, farklı varsayılanlar. iKit'in çözücüsü tamamen tarayıcınızda çalışır (jwt.io da öyle, ancak iKit'in kodu view-source ile açıktır ve alan adımızda üçüncü taraf izleyici yoktur). exp claim'i için net bir SÜRESİ DOLDU / geçerli rozeti, yapılandırılmış claim notları (iat / nbf / iss / sub / aud / jti okunabilir satırlar olarak) ve bir hata raporuna yapıştırmak üzere tüm yapılandırılmış çıktıyı veren bir tümünü-kopyala düğmesi ekledik.