JWT çözücü / doğrulayıcı
Bir JWT'nin başlığını ve yükünü çözün, imzasını doğrulayın ve ne zaman sona erdiğini görün.
JSON Web Token nedir
Bir JSON Web Token (JWT), bir dizi talebi — «bu, kullanıcı 42'dir» ya da «bu token öğlen sona erer» gibi ifadeleri — doğrulanabilir bir biçimde taşımanın kompakt, kendi kendine yeten bir yoludur. JWT'ler modern kimlik doğrulamada her yerdedir: oturum açtıktan sonra bir sunucu çoğu zaman tarayıcınıza imzalı bir JWT verir ve sonraki her istek onu içerir; böylece sunucu, hiçbir şeye bakmadan kim olduğunuza güvenebilir. Token kendi taleplerini ve imzasını taşıdığı için «durumsuz» olarak tanımlanır.
Bir JWT, noktalarla birleştirilmiş, Base64URL ile kodlanmış üç parçadır: başlık.yük.imza. Bu araç bu parçaları sizin için ayırıp çözer, talepleri okunabilir bir biçimde gösterir ve — imzalama anahtarını girerseniz — imzanın gerçek olduğunu doğrular.
Üç parça
- Başlık: token'ın nasıl imzalandığını, en önemlisi algoritmayı ("alg", örn. HS256 ya da RS256) ve token türünü açıklar.
- Yük: taleplerin kendisi — sub (özne/kullanıcı), exp (sona erme), iat (verilme zamanı) gibi alanlar ve verenin eklediği özel verilerle bir JSON nesnesi.
- İmza: başlık ve yük üzerinden bir gizli ya da özel anahtarla hesaplanan kriptografik bir değer. Bir JWT'yi güvenilir yapan şey budur: yükün tek bir karakterini değiştirin, imza artık eşleşmez.
En önemlisi, başlık ve yük yalnızca kodlanmıştır, şifrelenmemiştir. Token'a sahip olan herkes onları okuyabilir. İmza içeriği gizlemez — onların değiştirilmediğini kanıtlar. Bir JWT yüküne asla parola ya da sır koymayın.
İmzayı doğrulama
Bir JWT'yi çözmek size neyi iddia ettiğini söyler; onu doğrulamak, bu iddialara inanılıp inanılmayacağını söyler. Doğrulama, imzayı başlık ve yükten bir anahtar kullanarak yeniden hesaplar ve eşleştiğini kontrol eder. İki algoritma ailesi vardır ve farklı türde anahtar kullanırlar:
- HMAC (HS256, HS384, HS512): simetrik bir şema. Aynı paylaşılan gizli anahtar hem imzalar hem doğrular. Doğrulamak için o gizli anahtarı girin.
- RSA ve ECDSA (RS256, PS256, ES256 ve benzerleri): asimetrik şemalar. Bir özel anahtar imzalar, bir genel anahtar doğrular. Doğrulamak için PEM ile kodlanmış genel anahtarı girin — bir token'ı kontrol etmek için özel anahtara asla ihtiyacınız olmaz.
Bu araç algoritmayı başlıktan otomatik algılar ve tümüyle tarayıcınızda Web Crypto API kullanarak doğrular; böylece ne token ne de anahtar asla yüklenmez.
Standart talepleri okuma
Az sayıda talep adı standartlaştırılmıştır («kayıtlı talepler» denir). Araç bunları etiketler ve zaman tabanlı olanları ham Unix zaman damgalarından yerel saatinize çevirir; bir token'ın etkin mi, süresi dolmuş mu, yoksa henüz geçerli değil mi olduğunu bir bakışta görebilesiniz diye sade bir dille durum bilgisiyle:
- exp — sona erme zamanı: bu andan sonra token reddedilmelidir.
- nbf — bundan önce değil: token bu ana dek geçersizdir.
- iat — verilme zamanı: token'ın ne zaman oluşturulduğu.
- iss — veren: token'ı kimin oluşturduğu.
- sub — özne: token'ın kim ya da ne hakkında olduğu (çoğu zaman bir kullanıcı kimliği).
- aud — hedef kitle: token'ın kimin için tasarlandığı.
- jti — token için benzersiz bir tanımlayıcı.
Sıkça sorulan sorular
- Token'ım ya da anahtarım herhangi bir yere gönderiliyor mu?
- Hayır. Çözme ve imza doğrulama tümüyle tarayıcınızda Web Crypto API kullanılarak çalışır. Token, gizli anahtar ve genel anahtar cihazınızdan asla çıkmaz; bu yüzden üretim token'larını incelemek güvenlidir.
- Hangi imzalama algoritmalarını doğrulayabilir?
- Paylaşılan bir gizli anahtarla HMAC (HS256, HS384, HS512) ve PEM ile kodlanmış genel anahtarla RSA (RS ve PS varyantları) ve ECDSA (ES256, ES384). Algoritma, token başlığından otomatik algılanır.
- Bir JWT şifreli mi?
- Hayır. Standart imzalı bir JWT yalnızca kodlanmıştır, şifrelenmemiştir — herkes başlığını ve yükünü okuyabilir. İmza, token'ın değiştirilmediğini kanıtlar, ama içeriği gizlemez; bu yüzden yükte asla sır saklamayın.
- Bir RS256 token'ını doğrulamak için özel anahtara ihtiyacım var mı?
- Hayır. Asimetrik algoritmalar genel anahtarla doğrular. Özel anahtara yalnızca bir token oluşturmak (imzalamak) için ihtiyacınız vardır, onu kontrol etmek için asla.
- Token'ım neden süresi dolmuş görünüyor?
- exp talebi, cihaz saatinize göre geçmişte kalmıştır. Araç exp, nbf ve iat değerlerini yerel saatinize çevirir ve bir durum gösterir; böylece token'ın geçerlilik penceresini bir bakışta doğrulayabilirsiniz.
- HS256 ile RS256 arasındaki fark nedir?
- HS256 simetriktir: bir paylaşılan gizli anahtar hem imzalar hem doğrular; bu, aynı taraf ikisini de yaptığında en basit olandır. RS256 asimetriktir: bir özel anahtar imzalar, bir genel anahtar doğrular; bu, birçok tarafın token'ları taklit edemeden doğrulamasına olanak tanır.
- Yükü düzenleyip token'ı yeniden imzalayabilir miyim?
- Bu araç yalnızca okumaya yöneliktir: çözer ve doğrular, ama token oluşturmaz ya da yeniden imzalamaz. Bu, onu odaklı tutar ve özel imzalama anahtarlarıyla ilgilenmekten kaçınır.