İçeriğe atla
SPCX Tools

JWT Encoder

Tarayıcınızda anında HMAC tabanlı JSON Web Token'ları (JWT) oluşturun ve imzalayın.

Yerel çalışır — dosyalarınız cihazınızdan dışarı çıkmaz

Araç yükleniyor…

JWT Encoder nasıl kullanılır

  1. 1Tercih ettiğiniz HMAC imzalama algoritmasını seçin (HS256, HS384 veya HS512).
  2. 2JSON payload'unu düzenleyin. iat ve exp gibi standart claim'ler için geçerli zamanı eklemek üzere hızlı butonları kullanın.
  3. 3Gizli anahtarınızı (secret key) girin. Sisteminiz Base64 ile kodlanmış bir anahtar kullanıyorsa, Base64 kutusunu işaretleyin.
  4. 4İmzalanan token siz yazarken otomatik olarak güncellenir. Nihai JWT'yi almak için Kopyala'ya tıklayın.

Güvenli, yerel bir JWT kodlayıcı

Bu jwt kodlayıcı, geliştiricilerin doğrudan tarayıcı üzerinden hızlıca JSON Web Token'lar oluşturmasına, düzenlemesine ve imzalamasına olanak tanır. İster bir kimlik doğrulama akışı geliştiriyor, ister bir API uç noktasını test ediyor veya bir mikro hizmette hata ayıklıyor olun; özel betikler yazmadan veya kimlik bilgilerinizi üçüncü taraf sunucularla paylaşmadan anında geçerli token'lar oluşturabilirsiniz.

Araç, tarayıcınızın yerleşik Web Crypto API'sini kullandığı için tüm veri işleme ve kriptografik imzalama işlemleri tamamen cihazınızda gerçekleşir. JSON payload'unuz ve gizli anahtarlarınız asla karşıya yüklenmez, depolanmaz veya kayıt altına alınmaz. Bu yerel odaklı yaklaşım, hassas geliştirme veya test (staging) kimlik bilgileriyle çalışırken bile çevrimiçi ortamda güvenle JWT imzalamanızı sağlar.

JWT token nasıl oluşturulur

Bir JWT token oluşturmak için üç bileşene ihtiyacınız vardır: başlık (algoritmayı belirler), payload (verilerinizi içerir) ve gizli anahtar (token'ı güvenli hale getirir).

Algoritmanızı seçerek başlayın. Bu araç güçlü bir HS256 jwt oluşturucu olarak çalışır, ancak HS384 ve HS512'yi de destekler. Bunlar simetrik HMAC algoritmalarıdır, yani token'ı imzalamak ve daha sonra doğrulamak için birebir aynı gizli anahtar kullanılır. Sayı ne kadar yüksek olursa (örn. 512), ortaya çıkan hash boyutu o kadar büyük olur; bu da biraz daha uzun bir token dizesi pahasına daha güçlü kriptografik güvenlik sağlar.

Ardından, ilgili metin alanında payload'unuzu tanımlayın. Payload geçerli bir JSON olmalıdır. Siz JSON'u düzenlerken veya gizli anahtarı güncellerken, araç imzayı gerçek zamanlı olarak yeniden hesaplar ve JSON yapınızda bir sözdizimi hatası varsa anında geri bildirim sağlar. Payload ve gizli anahtarınız belirlendikten sonra, nihai token kopyalanmaya ve uygulamanızın Authorization başlıklarında veya çerezlerinde kullanılmaya hazırdır.

Token oluşturmak için yaygın kullanım senaryoları

Modern web geliştirmede elinizin altında güvenilir bir jwt oluşturucu bulunması şarttır. Geliştiriciler bu aracı genellikle çeşitli test ve hata ayıklama senaryoları için kullanır:

API Endpoint'lerini Test Etme: Postman veya Insomnia gibi API istemcileriyle çalışırken, korumalı rotalara erişmek için genellikle geçerli bir bearer token'a ihtiyaç duyarsınız. Giriş yapıp token almak için tüm frontend uygulamanızı çalıştırmak yerine, tam olarak ihtiyacınız olan kullanıcı kimliği ve rollerle burada manuel olarak bir token oluşturabilirsiniz.

Kimlik Doğrulama Mantığında Hata Ayıklama: Backend'iniz token'ları reddediyorsa, manuel olarak bir token oluşturmak sorunu izole etmenize yardımcı olur. Sorunun yanlış bir gizli anahtardan, hatalı bir payload'dan veya imzalama algoritmasındaki bir uyuşmazlıktan kaynaklanıp kaynaklanmadığını doğrulayabilirsiniz.

Uç Durumları Oluşturma: Backend'inizin süresi dolmuş token'ları, eksik claim'leri veya yetkisiz rolleri nasıl işlediğini test etmek güvenlik için çok önemlidir. Bu uç durumları (edge case) oluşturmak ve sunucunuzun doğru HTTP durum kodlarıyla yanıt verdiğinden emin olmak için buradaki JSON payload'unu kolayca düzenleyebilirsiniz.

Zaman damgalarını ve claim'leri yönetme

JSON Web Token'lar, token'ın yaşam döngüsü ve temsil ettiği kullanıcı hakkında bilgi aktarmak için claim (beyan) adı verilen özel alanlar kullanır. Zamana dayalı en yaygın claim'ler iat (Veriliş Zamanı) ve exp (Sona Erme Zamanı) alanlarıdır. Bu claim'lerin her ikisi de 1 Ocak 1970'ten bu yana geçen saniye sayısını ifade eden bir Unix zaman damgası (timestamp) gerektirir.

Test aşamasında bu zaman damgalarını manuel olarak hesaplamak zahmetli olabilir. İş akışınızı hızlandırmak için bu araç, payload düzenleyicisinin üzerinde hızlı işlem düğmeleri içerir.

  • iat = now seçeneğine tıklamak, iat alanına anında geçerli Unix zamanını ekler veya bu alanı günceller.
  • exp = +1h veya exp = +24h seçeneğine tıklamak, ileri bir tarihteki zaman damgasını hesaplar ve exp alanını buna göre günceller.

Bu sayede, oluşturduğunuz token'lar anında geçerli olur ve sunucunuzun zaman doğrulama mantığı tarafından zamanından önce reddedilmez.

Base64 Secret'larını İşleme

Online JWT imzalarken sık karşılaşılan sorunlardan biri, secret (gizli anahtar) kodlamasıdır. Çoğu backend sistemi ve rehber, HMAC secret'ınız için güçlü ve rastgele bir byte dizisi oluşturmanızı ve bunu ortam değişkenlerinizde bir Base64 string olarak saklamanızı önerir.

Sunucunuz token'ı imzalamadan veya doğrulamadan önce bu Base64 string'ini ham byte'lara (raw bytes) dönüştürüyorsa, Base64 metnini standart bir oluşturucuya doğrudan yapıştırmak imzanın geçersiz olmasına yol açar. Oluşturucu, Base64 karakterlerini düz metin (plain text) olarak işleyeceği için uyuşmazlık ortaya çıkar.

Bu sorunu çözmek için Secret is Base64 encoded (Secret Base64 kodlu) kutucuğunu işaretlemeniz yeterlidir. Araç, HMAC hash işlemini uygulamadan önce secret metninizi orijinal ham byte'lara dönüştürerek, oluşturulan imzanın backend ortamınızla birebir eşleşmesini sağlar.

JWT yapısını anlama

Bir token oluşturduğunuzda, yapısını daha iyi anlamanız için çıktı renk kodlu olarak gösterilir. Standart bir JWT, noktalarla (.) ayrılmış üç bölümden oluşur:

  1. Header (Kırmızı): Token hakkındaki meta verileri, temel olarak imzalama algoritmasını içerir (örn. {"alg":"HS256","typ":"JWT"}). Bu kısım, algoritma seçiminize göre otomatik olarak oluşturulur ve Base64-URL ile kodlanır.
  2. Payload (Mavi): Asıl JSON verinizdir ve o da Base64-URL ile kodlanmıştır. Bu kısım, token'ı ele geçiren herkes tarafından kolayca okunabilir; bu nedenle payload içine asla şifreleri veya çok hassas verileri koymamalısınız.
  3. İmza (Yeşil): Kodlanmış header ve kodlanmış payload'un, gizli anahtarınız (secret key) kullanılarak imzalanmış kriptografik özetidir (hash). Bu, token'ın iletim sırasında değiştirilmediğini garanti eder.

Mevcut bir token'ınız varsa ve gizli anahtar olmadan içeriğini görüntülemek istiyorsanız, header ve payload kısımlarını güvenle incelemek için onu JWT Çözücü aracımıza yapıştırabilirsiniz.

Sıkça sorulan sorular

Bu araç hangi algoritmaları destekliyor?
Bu araç şu anda HMAC tabanlı algoritmaları desteklemektedir: HS256 (SHA-256 ile HMAC), HS384 ve HS512. Bunlar simetrik algoritmalardır, yani token'ı imzalamak ve doğrulamak için aynı gizli anahtar kullanılır.
Gizli anahtarım sunucuya gönderiliyor mu?
Hayır. Tüm kriptografik imzalama işlemleri Web Crypto API kullanılarak yerel olarak tarayıcınızda gerçekleşir. JSON payload'unuz ve gizli anahtarınız cihazınızdan asla ayrılmaz; bu da aracı, test amaçlı token oluşturmak için güvenli bir yol haline getirir.
Base64 onay kutusu ne işe yarar?
Birçok backend framework'ünde JWT gizli anahtarı düz metin yerine Base64 ile kodlanmış bir dize olarak saklanır. Bu kutuyu işaretlemek, HMAC algoritması uygulanmadan önce girdinizi ham byte'lara dönüştürür (decode eder) ve oluşturulan imzanın sunucunuzun beklediği değerle tam olarak eşleşmesini sağlar.
Zaman butonları nasıl çalışır?
iat (issued at) ve exp (expiration) butonları, JSON payload'unuza standart Unix zaman damgalarını (1 Ocak 1970'ten bu yana geçen saniye sayısı) ekler. Bu sizi mevcut epoch zamanını manuel olarak arama veya hesaplama zahmetinden kurtarır.
Sunucumda doğrulamaya çalıştığımda token'ım neden geçersiz oluyor?
En yaygın nedenler eşleşmeyen bir gizli anahtar, yanlış algoritma veya gizli anahtarın kodlanma biçimindeki bir uyuşmazlıktır. Birebir aynı gizli anahtarı kullandığınızdan emin olun ve sunucunuzun imzalama işleminden önce anahtarın Base64'ten çözülmesini (decode edilmesini) gerektirip gerektirmediğini kontrol edin.