tooly

Base64 kodlayıcı ve çözücü

Metni Base64'e ve geri çevirin ya da herhangi bir dosyayı gömmek için Base64 data URI'ye dönüştürün. Unicode doğru işlenir ve her şey tarayıcınızda yerel çalışır.

Her şey tarayıcınızda çalışır — hiçbir şey gönderilmez

Nasıl kullanılır

  1. 1

    Kodla veya Çöz seçin.

  2. 2

    Metninizi yazın ya da yapıştırın veya kodlanacak dosyayı seçin.

  3. 3

    Sonucu kopyalayın.

Base64 ne işe yarar

Base64, ikili (binary) veriyi metin için tasarlanmış kanallardan geçirmek için vardır. E-posta, JSON, XML, HTML öznitelikleri, ortam değişkenleri ve HTTP başlıklarının hepsi yazdırılabilir karakterler bekler ve birçoğu null, satır sonu veya 127'nin üzerindeki değerler gibi ham baytlarla bozulur. Base64, herhangi bir bayt dizisini yalnızca 64 güvenli sembolle yeniden yazar: A–Z, a–z, 0–9, + ve /; dolgu için de =.

Onunla karşılaştığınız tipik yerler:

  • user:password değerinin dXNlcjpwYXNzd29yZA== olarak gönderildiği HTTP Basic kimlik doğrulaması.
  • Noktalarla ayrılmış üç parçası URL-safe Base64 olan JSON Web Token'lar.
  • MIME iletileri içinde Base64 olarak taşınan e-posta ekleri.
  • Küçük bir simgeyi veya yazı tipini doğrudan HTML ya da CSS'e gömen data URI'ler.
  • Bir sertifikayı, anahtarı veya küçük bir ikili bloğu metin olarak taşıması gereken API yükleri ve yapılandırma dosyaları.

Base64 bir kodlamadır, şifreleme değildir. Herkes onu bir saniyede çözebilir; dolayısıyla bir yapılandırma dosyasındaki Base64 dizesi hiçbir şeyi korumaz. Verinin değiştirilmediğini doğrulamanız gerekiyorsa bunun yerine bir hash kullanın.

Kodlama nasıl çalışır

Kodlayıcı girdiyi üçer bayt, yani 24 bit halinde alır ve bunları 6 bitlik dört gruba böler. 0 ile 63 arasındaki her 6 bitlik değer alfabeden bir karakter seçer. Üç bayt girer, dört karakter çıkar; bu yüzden Base64 çıktısı her zaman girdiden yaklaşık %33 daha büyüktür: 30 KB'lık bir görsel kabaca 40 KB'lık metne dönüşür.

Girdi uzunluğu üçün katı olmadığında son grup eksik kalır. Kodlayıcı onu doldurur ve boşluğu bir veya iki = işaretiyle belirtir. Man dizesinin TWFu, Ma dizesinin TWE= ve M harfinin TQ== olarak kodlanmasının nedeni budur.

Metnin kodlanabilmesi için önce bayta dönüşmesi gerekir ve bu araç bu adımda her zaman UTF-8 kullanır. café kelimesi UTF-8'de beş bayttır (é iki bayt tutar), bir emoji ise dört bayt. Kod çözme baytları yine UTF-8 olarak yorumlar, böylece herhangi bir alfabedeki metin gidiş-dönüşte değişmeden kalır.

URL-safe varyantı

Standart alfabenin iki karakteri düz metin dışında sorun çıkarır. Bir URL'de + boşluk, / ise yol ayırıcı olarak okunabilir; bir dosya adında / hiç kullanılamaz. RFC 4648'de tanımlanan URL-safe alfabe bunları - ve _ ile değiştirir.

URL-safe kutusu işaretliyken araç bu değişikliği yapar ve sondaki = dolgusunu da kaldırır; JWT'ler ve çoğu web API'si bunu böyle bekler. Kod çözücü her iki biçimi de kabul eder: - ve _ karakterlerini geri çevirir ve eksik dolguyu otomatik olarak tamamlar; böylece bir JWT parçasını doğrudan yapıştırıp JSON'unu okuyabilirsiniz. Bu JSON tek uzun bir satır olarak çıkarsa, JSON formatlayıcı onu okunur hale getirir.

Dosyaları data URI olarak kodlamak

Dosya kodla… dosyayı tarayıcınızda okur ve data:image/png;base64,iVBORw0KGgo… gibi eksiksiz bir data URI üretir. MIME türü, tarayıcının dosya için bildirdiği türden gelir; tarayıcı bunu belirleyemediğinde genel application/octet-stream kullanılır. Sonucu bir <img src> özniteliğine, bir CSS background-image: url(...) kuralına veya bir @font-face kuralına yapıştırabilirsiniz.

Data URI'ler küçük öğeler için anlamlıdır: bir SVG simge, 1–2 KB'lık bir yer tutucu görsel, bir HTML e-posta imzasındaki logo. Daha büyük her şeyde aleyhinize çalışırlar. Metin orijinal dosyadan üçte bir daha büyüktür, içinde bulunduğu sayfadan ayrı olarak önbelleğe alınamaz ve herhangi bir şey görüntülenmeden önce yüklenmesi gereken HTML'yi veya CSS'i şişirir. Pratik bir üst sınır öğe başına birkaç kilobayttır.

Dosyanın tamamı belleğe okunur ve tek seferde dönüştürülür, bu yüzden çok büyük dosyalar sekmeyi yavaşlatabilir veya belleği tüketebilir. Dosya hiçbir yere yüklenmez.

Kod çözme başarısız olduğunda

Girdi alfabe dışında karakterler içerdiğinde veya imkânsız bir uzunluğa sahip olduğunda kod çözücü "Geçersiz Base64" gösterir. Yaygın nedenler:

  • Data URI öneki. Kodu çözmeden önce data:image/png;base64, içindeki virgül dahil her şeyi silin.
  • Dizenin içindeki satır sonları. MIME kodlayıcıları Base64'ü 76 karakterde satıra böler. Satırlara bölünmüş metinde kod çözme başarısız olursa, önce onu tek bir satırda birleştirin.
  • Kopyalama hataları. Eksik bir son karakter veya bir JSON dizesinden kalan fazladan bir tırnak işareti onu bozmaya yeter.

Kod çözücü sonucu her zaman metne çevirir. Orijinal veri bir görsel veya ZIP arşivi gibi ikili bir dosyaysa, çıktı rastgele semboller ve soru işaretleri gibi görünür; bu beklenen bir durumdur, çünkü bu baytlar hiçbir zaman metin değildi.

SSS

Verilerim yükleniyor mu?

Hayır. Kodlama tarayıcınızda yapılır; metin ve dosyalar cihazınızdan çıkmaz.

URL-safe Base64 nedir?

+ ve / yerine - ve _ kullanan, dolgu kullanmayan bir varyant; sonuç URL'lere ve dosya adlarına konabilir.

Emoji ve Türkçe karakterlerle çalışır mı?

Evet. Metin önce UTF-8 olarak kodlanır, bu yüzden her Unicode metin doğru şekilde gidip gelir.

Dosya kodlamak ne üretir?

Doğrudan HTML veya CSS'e yapıştırabileceğiniz bir data URI (data:image/png;base64,…).

İlgili araçlar