JWT Encoder
HS256 / HS384 / HS512 ile imzalı JWT token oluşturun. Tüm işlem tarayıcıda gerçekleşir, sunucuya veri gönderilmez.
JSON değerler otomatik parse edilir (örn. true, 42). iat ve exp otomatik eklenir.
HS256 / HS384 / HS512 ile imzalı JWT token oluşturun. Tüm işlem tarayıcıda gerçekleşir, sunucuya veri gönderilmez.
JSON değerler otomatik parse edilir (örn. true, 42). iat ve exp otomatik eklenir.
HMAC imzalı JWT'de header ve payload Base64URL kodlanır, nokta ile birleştirilir. Bu birleşim secret ile HMAC hesaplanır; sonuç üçüncü parça olan signature'dır. Tüm işlem tarayıcıda gerçekleşir.
JWT (JSON Web Token) oluşturma süreci üç adımdan oluşur: (1) Header oluştur — `{alg: 'HS256', typ: 'JWT'}` (2) Payload oluştur — claim'leri içeren JSON nesnesi (3) İmzala — Header.Payload string'ini seçilen algoritma ve secret key ile imzala.
Encoding: Her bölüm Base64URL kodlamasıyla encode edilir (standart Base64'ten farklı: + yerine -, / yerine _ kullanılır ve padding = karakteri yoktur). Son token: base64url(header) + '.' + base64url(payload) + '.' + imza.
hesaplatr.net JWT encoder: Payload JSON'unuzu ve secret key'inizi girerek anında geçerli JWT token üretir. Algoritma seçimi (HS256, RS256 vb.) de desteklenmektedir.
HS256 (HMAC-SHA256): Paylaşılan secret key kullanır. Hem imzalama hem doğrulama aynı key ile yapılır. Tek bir servis veya güvenilir ortamlar için uygundur; secret key'in sızması tüm token'ları tehlikeye atar.
RS256 (RSA-SHA256): Private key ile imzalanır, public key ile doğrulanır. Public key dağıtılabilir; private key gizli kalır. Çok servisli mimarilerde idealdir. Anahtar rotasyonu daha güvenlidir.
ES256 (ECDSA-SHA256): RSA'ya benzer asimetrik yapı; ancak daha küçük anahtar boyutuyla benzer güvenlik sağlar. Modern sistemlerde RS256'ya alternatif olarak giderek yaygınlaşmaktadır.
Standart claim'ler: `sub` (kullanıcı ID), `iss` (token yayımcısı), `aud` (hedef servis), `exp` (son kullanma — Unix timestamp), `iat` (yayım zamanı), `jti` (benzersiz ID — blacklist için). Bu claim'lerin doğru doldurulması güvenlik ve birlikte çalışabilirlik açısından kritik.
Custom claim'ler: `email`, `role`, `permissions` gibi uygulama özelinde claim'ler eklenebilir. Büyük payload'lar her istekte taşındığından gereksiz veri eklemeyin; yalnızca karar almak için gerekli minimum bilgiyi dahil edin.
Hassas veri: Parola, kredi kartı numarası, gizli anahtar gibi hassas veriler payload'a eklenmemelidir. JWE (JSON Web Encryption) gerçek şifreleme sunar; standart JWT yalnızca imzalar, şifrelemez.
exp claim hesabı: `Math.floor(Date.now() / 1000) + 3600` ifadesi şu andan 1 saat sonrasının Unix timestamp'ini verir. hesaplatr.net JWT encoder exp alanını otomatik hesaplayabilir veya manuel giriş destekler.
Uygun token süresi: Access token 5-15 dakika, refresh token 7-30 gün önerilir. Çok kısa token süresi kullanıcı deneyimini bozarken çok uzun süre güvenlik riski oluşturur. Uygulama hassasiyetine göre ayarlanmalıdır.
Secret key güvenliği: HS256 için secret key en az 256-bit (32 karakter) olmalı ve üretim ortamında güvenli vault'ta saklanmalıdır. Environment variable olarak kod deposuna gömülmesi kritik güvenlik ihlalidir.
jwt.io: JWT'leri encode/decode etmek için yaygın kullanılan bir online araçtır. hesaplatr.net JWT decoder ve encoder birlikte test ortamı oluşturur.
Otomatik test: API testlerinde JWT oluşturmak için jest, pytest veya Postman'daki pre-request script'ler kullanılabilir. CI/CD pipeline'larına JWT entegrasyon testleri eklemek güvenlik açıklarını erken tespit eder.
Yaygın hatalar: exp'yi saniye yerine milisaniye olarak girmek (1000 kat büyük), aud claim'ini doğrulamamak, algorithm none saldırısına karşı kontrol koymamak, aynı secret'ı test ve üretimde kullanmak.