İçeriğe geç
LeedyBox
Destek ol

Base64 / URL / JWT Kodlayıcı ve Çözücü

Base64 veya URL'leri kodlayıp çözün, JWT başlığını ve yükünü tarayıcıda inceleyin.

Sonuçları kullanmadan önce kontrol edin. Araç olduğu gibi ve herhangi bir garanti olmaksızın sunulur; sonuçlar eksik veya hatalı olabilir. Hizmet Koşulları

JWT çözme imzayı doğrulamaz; bu nedenle çözülen bir belirteç gerçek veya geçerli olduğunun kanıtı değildir. URL çözme "+" işaretini boşluğa çevirmez. Base64 bir kodlamadır, şifreleme değildir.

Nasıl kullanılır

  1. Girdinizi "Metin veya JWT" kutusuna yapıştırın ya da yazın: kodlanacak düz metin, çözülecek bir Base64 veya yüzde kodlamalı dize ya da incelenecek bir JWT.
  2. Metin ile Base64 arasında dönüştürmek için "Base64 kodla" veya "Base64 çöz" düğmesine, yüzde kodlamasını eklemek veya kaldırmak için "URL kodla" veya "URL çöz" düğmesine tıklayın. Sonuç ya da bir hata mesajı "Çıktı" kutusunda görünür.
  3. Bir belirteci (token) incelemek için onu Bearer önekiyle veya öneksiz yapıştırın ve "JWT çöz" düğmesine tıklayın. Başlık (header) ve yük (payload) girintili JSON olarak görünür; yükte iat, nbf veya exp talepleri varsa bunlar "JWT zaman talepleri" altında listelenir ve sayısal değerler UTC'ye ve yerel saatinize çevrilir.
  4. Çıktıyı kopyalamak için "Sonucu kopyala" düğmesine tıklayın. Bir kodlamayı geri almak için kodlanmış metni "Metin veya JWT" kutusuna yapıştırın ve ilgili çözme düğmesine tıklayın. Çözüp yeniden kodlamak özgün metni birebir geri vermeyebilir: URL-safe veya dolgusuz Base64, standart alfabeyle ve gerektiğinde = dolgusuyla geri gelir; "URL çöz" işleminden sonra kalan bir + işaretini ise "URL kodla" %2B'ye çevirir.

Sık sorulan sorular

Yapıştırdığım metin veya belirteç bir yere gönderiliyor mu?

Hayır. Kodlama ve çözme tarayıcınızda JavaScript ile çalışır ve girdiğiniz içerik LeedyBox'a gönderilmez. JWT çoğu zaman oturum açma kimlik bilgisi olarak kullanılır ve süresi dolana veya iptal edilene kadar onu elinde bulunduran herkes için çalışabilir; bu yüzden geçerli bir belirtece parola gibi davranın ve onu ekran görüntülerinde veya sohbetlerde paylaşmayın.

"Base64 çöz" neden verilerin geçerli UTF-8 metni olmadığını söylüyor?

"Base64 çöz" çözülen baytları UTF-8 metni olarak gösterir ve baytlar geçerli UTF-8 değilse bu hatayla durur; örneğin PNG veya JPEG görüntüler, çoğu PDF ve sıkıştırılmış veriler ile çoğu zaman Latin-1 veya Shift_JIS gibi başka bir kodlamayla kaydedilmiş metinler böyledir. Araç çözülen baytları dosya olarak kaydetmez, bu yüzden onu metin içeren Base64 için kullanın. data:image/png;base64,... gibi bir data URI geçersiz Base64 olarak reddedilir, çünkü iki nokta, noktalı virgül ve virgül Base64 karakteri değildir.

URL-safe Base64 ve dolgusu (padding) eksik değerler destekleniyor mu?

Çözerken evet: "Base64 çöz" standart alfabeyi (+ ve /) ve URL-safe alfabeyi (- ve _) = dolgusu olsun ya da olmasın kabul eder, boşlukları ve satır sonlarını yok sayar. "Base64 kodla" dolgulu standart alfabeyle çıktı verir; JWT'lerde kullanılan URL-safe biçim için + yerine -, / yerine _ yazın ve sondaki = işaretlerini silin. Metin girildiği hâliyle UTF-8 olarak kodlanır; bu yüzden sondaki bir boşluk veya satır sonu sonucu değiştirir ve kutudaki satır sonları LF olarak kodlanır.

Bir URL'nin tamamını "URL kodla" ile kodlamalı mıyım?

Genellikle hayır. "URL kodla", JavaScript'teki encodeURIComponent gibi çalışır: A–Z, a–z, 0–9 ve - _ . ! ~ * ' ( ) dışındaki tüm karakterleri yüzde kodlamasıyla kodlar, bu nedenle bir URL'nin yapısını oluşturan / ? & = : ve # karakterleri de kodlanır. Bunu tek bir parça için kullanın, örneğin bir sorgu parametresinin değeri için. Boşluklar %20 olur ve ASCII dışı karakterler UTF-8 baytları olarak kodlanır; örneğin é, %C3%A9 olur.

Artı işaretleri neden boşluğa dönüştürülmüyor ve "URL çöz" ne zaman hata verir?

"URL çöz", JavaScript'teki decodeURIComponent gibi çalışır: %XX kaçış dizilerini çözer ve + işaretini olduğu gibi bırakır, çünkü genel URL söz diziminde (RFC 3986) + boşluk anlamına gelmez. Birçok sorgu dizesinin kullandığı HTML form verisi biçimi (application/x-www-form-urlencoded) boşlukları + olarak kodlar; bu tür verileri çözmeden önce her + işaretini boşlukla değiştirin. Bu biçimde gerçek bir artı işareti %2B olarak yazılır ve yine doğru çözülür. Hata, bir % işaretinin ardından 50% off örneğindeki gibi iki onaltılık basamak gelmediğinde veya %E2%82 örneğindeki gibi kaçışlı baytlar geçerli UTF-8 olmadığında görünür.

"JWT çöz" hangi belirteçleri okuyabilir?

İmzalı JWT'lerin (JWS) kullandığı, üç bölümlü header.payload.signature kompakt biçimindeki belirteçleri okur; imza bölümü boş olan imzasız belirteçler de buna dahildir. İmza bölümü denetlenmez; bu yüzden çözülen bir belirteç gerçek olduğunun kanıtı değildir. Şifrelenmiş belirteçler (JWE) beş bölümden oluşur ve yükleri anahtar olmadan okunamaz; bu yüzden biçim hatası alırlar. Base64'ten JSON'a çözülemeyen bir başlık veya yük ya da JSON nesnesi yerine dize veya sayı gibi düz bir değer olan bir yük, "JWT ayrıştırma hatası" mesajına yol açar. Başlık veya yükteki 9.007.199.254.740.991'den büyük tam sayılar, tarayıcı JSON'u ayrıştırırken yuvarlanabilir; bu yüzden uzun sayısal kimlikler farklı son basamaklarla gösterilebilir.

exp, nbf ve iat zamanları nasıl gösterilir ve bir belirteç ne zaman süresi dolmuş olarak işaretlenir?

Değerler, JWT standardının (RFC 7519) tanımladığı gibi saniye cinsinden Unix zamanı olarak okunur ve UTC ile yerel saatinizde gösterilir. "SÜRESİ DOLDU" ve "Henüz geçerli değil" durumları, exp ve nbf değerlerini "JWT çöz" düğmesine tıkladığınız andaki cihaz saatinizle, saat farklarına hiç pay bırakmadan karşılaştırır; bu yüzden saat yanlışsa durum da yanlış olur. Sunucular çoğu zaman birkaç dakikayı geçmeyen küçük bir tolerans tanıyabilir; bu nedenle exp veya nbf zamanına yakın anlarda sunucu, burada gösterilen durumdan farklı karar verebilir. "1700000000" gibi dize olarak yazılmış bir zaman, geçerli bir sayısal Unix zaman damgası olmadığı şeklinde bildirilir.