§

JWT'nizi yapıştırın

Ayrıştırma ve imza doğrulama işlemlerinin her ikisi de yerel olarak çalışır. Token hakkında hiçbir bilgi sunucuya gönderilmez.
§

Başlık

json
§

Yük

json
§

İmzayı doğrula

İmzayı doğrulamak için bir gizli anahtar girin.

Türkiye'deki geliştiriciler bu çözücüye en sık e-Devlet kapısına bağlanan kurumsal SSO entegrasyonlarında dönen access token'ı incelemek, BDDK Açık Bankacılık FAPI 1.0 profili altında İş Bankası, Garanti BBVA, Yapı Kredi veya Akbank'ın sunduğu OAuth2 yetkilendirme yanıtlarındaki claim'leri okumak için başvurur. Trendyol Satıcı API'sinde, Hepsiburada Marketplace tokeninde veya Turkcell API Gateway'in döndürdüğü kimlik token'ında scope, iat, exp ve aud alanlarını hızlıca doğrulamak; KVKK gereği TC Kimlik No içerebilen payload'ı sunucuya yüklemeden hata ayıklamak; Auth0, Keycloak veya Logo Yazılım kurumsal kimlik yığınlarının ürettiği HS256/RS256 token'larını lokalde test etmek tipik kullanım örnekleridir. Token sekmeden hiç çıkmaz, MASAK ve KVKK saklama kuralları korunur.

JSON Web Token nedir?

Bir JSON Web Token (JWT), küçük bir talep yükü için kompakt, URL güvenli bir zarftır. Durumsuz web oturumları, OAuth/OIDC kimlik tokenleri, makineler arası API kimlik doğrulaması ve imzalı sihirli bağlantılar için standart kimlik bilgisi biçimidir. Bir JWT her zaman noktalarla birleştirilmiş üç base64url segmentidir: header.payload.signature. Başlık ve yük JSON'dur; imza, ilk iki segmentin üzerinde bir ikili MAC veya dijital imzadır.

JWT’ler nasıl çalışır?

Bu araç bir tokeni çözdüğünde, her JWT kitaplığının izlediği aynı üç adımlı yolu takip eder:

  1. Tokeni noktalar üzerinden tam olarak üç boş olmayan segmente bölün. Başka herhangi bir biçim hatalıdır.
  2. 0 ve 1 numaralı segmentleri base64url ile çözün, ardından her birini JSON.parse ile ayrıştırın. Başlık algoritmayı (alg) ve token türünü (typ) taşır. Yük ise talepleri (sub, exp, iat, özel anahtarlar) taşır.
  3. Bir gizli anahtar sağlanırsa, başlıktaki algoritmayı kullanarak <segment0>.<segment1> üzerinden MAC'i yeniden hesaplayın. Baytları üçüncü segmentle karşılaştırın.
  4. Doğrulama sonucunu, exp talebinden hesaplanan insan tarafından okunabilir bir son kullanma göstergesi dahil olmak üzere çözülmüş taleplerle birlikte gösterin.

JWT’ler neden tarayıcıda çözülmeli?

Gerçek, kullanımda olan bir JWT'yi uzak bir hata ayıklayıcıya yapıştırmak, kimlik bilgisini o hizmetin günlüklerine, gözlemlenebilirlik yığınına ve hizmetin veri gönderdiği herhangi bir ortağa sızdırır. Üçüncü taraf site tokenleri kaydetmediğini iddia etse bile, bunu doğrulamanın hiçbir yolu yoktur. Bu araç, bu ödünleşmeyi asla yapmak zorunda kalmamanız için inşa edilmiştir:

  • Sıfır ağ: çalışma zamanında fetch, XMLHttpRequest veya sendBeacon çağrısı yoktur. Çözme ve doğrulama sırasında Geliştirici Araçları'nı açın — Ağ paneli sessiz kalır.
  • Yerel Web Crypto: HMAC doğrulaması, çalışma zamanınızın çağıracağı aynı ilkel öğeler olan crypto.subtle.importKey ve crypto.subtle.sign kullanır.
  • Statik dağıtım: her sayfa, tehlikeye atılacak sunucu uç noktası olmayan tek bir statik HTML dosyasıdır. Sızdırılacak bir sunucu olmadığı için sızdırılacak bir token da yoktur.

Bu araç neyi doğrular, neyi doğrulamaz?

Bu aracın 1. sürümü yalnızca HMAC-SHA ailesi imzalarını doğrular. Somut olarak:

  • Desteklenen: HS256, HS384, HS512. Paylaşılan gizli anahtarı sağlayın; araç MAC'i yeniden hesaplayıp karşılaştıracaktır.
  • Henüz desteklenmeyen: RS256/384/512 (RSA), ES256/384/512 (ECDSA), EdDSA ve PS256/384/512 (RSA-PSS). Bunlar PEM veya JWK biçiminde bir açık anahtar gerektirir ve kasıtlı olarak takip eden bir sürüme ertelenmiştir.
  • Reddedilen: alg: "none". Araç tokeni çözer ancak açıkça güvensiz olarak işaretler — imza doğrulaması yapılmıyor ve böyle bir tokeni kabul eden herhangi bir üretim sistemi ciddi bir güvenlik açığına sahiptir.

JWT kod çözme örneği nasıl görünür?

Yukarıdaki giriş alanına standart RFC 7519 örnek tokenini yapıştırın:

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c

Başlık {"alg":"HS256","typ":"JWT"} olarak ve yük {"sub":"1234567890","name":"John Doe","iat":1516239022} olarak çözülür. Doğrulama paneline your-256-bit-secret girin ve imza kontrolü geçerli sonucunu döndürür. Gizli anahtarın tek bir karakterini değiştirin; geçersiz döndürür. Bunların hiçbiri tarayıcınızdan dışarı çıkmaz.

Bu, üretimde bir tokeni hata ayıklamamız gerektiğinde var olmasını istediğimiz JWT çözücüsüdür: gizliliğe saygılı, hızlı ve çalışma zamanının kullandığı aynı ilkel öğeler üzerine inşa edilmiş.