Base64 Kodlayıcı / Çözücü Online - Metin ve UTF-8 Desteği

0 chars
0 chars

Okunabilir metni HTTP başlıklarında kullanmak üzere Base64 formatına dönüştürmeniz mi gerekiyor, yoksa bir API token’ının içeriğini mi çözmek istiyorsunuz? Base64 Metin Kodlayıcı ve Çözücümüz, Türkçe karakterler veya özel semboller gibi zorluklarla başa çıkabilen, metin dizeleriyle çalışmak için özel olarak tasarlanmış bir araçtır.

Resimlerle mi çalışıyorsunuz?
Kodunuz data:image/png... ile başlıyorsa veya bir dosyayı metne dönüştürmek istiyorsanız, bu araç size yalnızca anlamsız karakterler gösterecektir. Lütfen resme dönüştürme için özel aracımızı kullanın.

Base64 Formatı Nasıl Çalışır?

Birçok kişi Base64’ü günlük olarak kullanır, ancak çok azı “kaputun altında” nasıl çalıştığını bilir. Bu bir sihir değil, bitlerle yapılan basit bir matematiktir.

Bilgisayardaki normal metin 8 bit (1 bayt) olarak saklanır. Ancak Base64, 64 karakterden (A-Z, a-z, 0-9, +, /) oluşan bir “alfabe” kullanır. 2^6 = 64 olduğundan, bir Base64 karakteri tam olarak 6 bit bilgiyi temsil eder.

Dönüşüm Süreci (Algoritma):

  1. Metninizden üç karakter alınır (3 × 8 bit = 24 bit).
  2. Bu 24 bit, her biri 6 bitten oluşan dört gruba ayrılır.
  3. Her gruba Base64 tablosundan bir karakter atanır.

Sonuç: 3 karakterden 4 karakter ürettiğimiz için, ortaya çıkan Base64 dizesi her zaman orijinal metinden yaklaşık %33 daha uzundur.

Karakter Seti Sorunu: Neden Sıradan Base64 Dönüştürücüler Türkçe Karakterleri Bozar?

Tarayıcı konsolunda btoa('Şömine') fonksiyonunu kullanarak “Şömine” gibi bir kelimeyi kodlamayı denediyseniz, muhtemelen şöyle bir hata almışsınızdır: String contains characters outside of the Latin1 range.

Base64 başlangıçta 7-bit ASCII karakterler için tasarlanmıştır. Ancak Türkçe karakterler, emojiler ve diğer özel semboller (UTF-8) bellekte daha fazla bayt (çok baytlı karakterler) kaplar.

  • Harf a = 1 bayt.
  • Harf ğ = 2 bayt.
  • Emoji 🚀 = 4 bayt.

Aracımız bu sorunu çözer. Base64’e kodlamadan önce metni doğru bir şekilde UTF-8 bayt dizisine dönüştürürüz. Bu sayede JSON nesnelerini, Türkçe metinleri ve modern sembolleri veri bozulma riski olmadan güvenle kodlayabilirsiniz.

Base64 Metin Kodlaması Nerede Kullanılır?

Base64’teki görseller esas olarak CSS/HTML’e gömme için kullanılırken, metin Base64’ün arka uç sistemlerinde tamamen farklı kullanımları vardır:

1. HTTP Temel Kimlik Doğrulaması

Bir API’ye giriş yaparken, başlık genellikle şöyle görünür: Authorization: Basic dXppdmF0ZWw6aGVzbG8= Bu kodun arkasında, kullanıcıadı:şifre formatında basitçe birleştirilmiş bir kullanıcı adı ve şifre bulunur. Aracımız, bu başlıkları kolayca oluşturmanıza veya kontrol etmenize olanak tanır.

2. JSON Web Tokenları (JWT)

Modern web uygulamaları, oturum açma için JWT adı verilen yapıları kullanır. Böyle bir token, noktalarla ayrılmış üç uzun dizeye benzer. Veri kısmı (Payload), Base64 ile kodlanmış sıradan bir JSON nesnesidir.

  • İpucu: JWT token’ınızın orta kısmını buraya yapıştırıp çözümlemeyi deneyin. Uygulamanın sizinle ilgili hangi verileri kaydettiğini (örn. kullanıcı kimliği, süre sonu) tam olarak göreceksiniz.

3. Yapılandırma Dosyaları (Kubernetes Gizlilikleri)

Kubernetes gibi platformlar, gizli verileri (Secrets) yapılandırma YAML dosyalarında Base64 olarak depolar. Bu bir şifreleme değil, ikili verileri veya sorunlu karakterlere (yeni satırlar, tırnak işaretleri) sahip metni bir metin dosyasına depolamanın bir yoludur.

”URL Güvenli Base64 Kodlaması” Nedir ve Neden Önemlidir?

Standart Base64 alfabesi + (artı) ve / (eğik çizgi) karakterlerini içerir. Bu iki karakterin URL adreslerinde özel anlamları vardır:

  • / dizinleri ayırır.
  • + genellikle boşluk olarak yorumlanır.

Standart bir Base64’ü bir URL parametresiyle gönderirseniz (örn. site.com?token=ab/cd+ef), sunucu verileri yanlış okuyabilir.

Çözüm (URL Güvenli Mod): Anahtarımız, aşağıdaki değişiklikleri yapan Base64URL (RFC 4648’e göre) varyantını etkinleştirir:

  • + karakteri - (tire) ile değiştirilir.
  • / karakteri _ (alt çizgi) ile değiştirilir.
  • URL’de gerekmeyen = karakterleri (doldurma) sondan kaldırılır.

Efsane: Base64 Şifreleme Değildir!

Acemi kullanıcıların sıkça karıştırdığı temel bir farkı anlamak önemlidir:

  1. Kodlama (Encoding - Base64): Veri aktarımı için kullanılır. Bu, bir eşyayı yolda kırılmaması için bavula koymak gibidir. Bavulu bulan herkes açabilir (çözebilir) ve içeriğini görebilir. Gizli veriler için güvenli değildir.
  2. Şifreleme (Encryption - AES, RSA): Verileri bir anahtarla kilitler. Anahtar olmadan içeriğe erişemezsiniz.
  3. Hashleme (Hashing - SHA, MD5): Tek yönlü bir işlemdir (örn. şifreleri saklamak için). Sonuçtan orijinal metni geri almak imkansızdır.

Bir şifre veya hassas bir bilgiyi göndermeniz gerekiyorsa, yalnızca Base64 yeterli değildir. Aktarımı şifreleyecek HTTPS (SSL/TLS) kullanmanız gerekir.


Sıkça Sorulan Sorular (SSS)

Dizenin sonundaki "=" karakterleri ne anlama geliyor? Bu "doldurma" (padding) olarak adlandırılır. Base64 veriyi 3 karakterlik gruplar halinde kodladığı için, orijinal metnin uzunluğu üçe bölünemeyebilir. `=` karakterleri, çözücünün sonda kaç bitin göz ardı edilmesi gerektiğini anlaması için eklenir.
Çözülmüş metin neden "anlamsız karakterler" olarak görünüyor? Muhtemelen metin olmayan verileri çözmeye çalışıyorsunuz. Eğer Base64 dizesi sıkıştırılmış bir dosya (ZIP), bir resim veya şifrelenmiş verileri temsil ediyorsa, metne (UTF-8) dönüştürmek anlamsızdır. Verinin kaynağını bulmaya çalışın.
Araç çevrimdışı çalışıyor mu? Evet. Tüm dönüşüm mantığı JavaScript'te yazılmıştır ve doğrudan tarayıcınızda çalışır. Sayfa yüklendikten sonra internet bağlantınızı kesebilirsiniz ve araç hala çalışmaya devam edecektir. Verileriniz hiçbir yere gönderilmez.