Neden kullanılır?
Bazı taşıma kanalları sınırlı karakter kümeleriyle çalışır. Base64 baytları metne çevirerek veri taşımayı kolaylaştırır.
Bu dönüşüm genellikle boyutu artırır. Base64 sıkıştırma yöntemi değildir.
Şifreleme değildir
Base64 çıktısı gizli değildir; herkes tersine çevirebilir. Parola veya API anahtarını Base64 yapmak onu korumaz. Güvenlik için uygun şifreleme ve anahtar yönetimi gerekir.
Data URL küçük veriler için kullanılabilir; sayfa kaynağında görünme ve URL uzunluğu etkilerini düşünün.
Standart ve URL-safe biçim
Klasik Base64 içinde +, / ve dolgu için = bulunabilir. Base64url bazı sembolleri değiştirir ve padding’i farklı ele alabilir. Hedef protokolün istediği biçimi kullanın.
Kaynağın metin mi ikili veri mi ve hangi karakter kodlamasında olduğunu bilin.
Çıktıyı doğrulayın
Kodlanan metin boşluk veya satır sonlarıyla bozulabilir. Çözme sonrasında içeriği ve uzunluğu karşılaştırın; dosyayı hedef uygulamada açın.
Yerel dönüşüm, halka açık cihazdaki pano veya eklenti riskini ortadan kaldırmaz.
Baytları karakterlere eşleme
Base64, her üç giriş baytını 24 bite toplar ve bu grubu altı bitlik dört değere ayırır. Her değer, Base64 alfabesindeki bir karaktere karşılık gelir. Girdi uzunluğu üç baytın katı değilse standart gösterimde son grubu tamamlamak için eşittir işaretli padding görülebilir. Bu işlem metin kodlamasıyla aynı değildir: önce bir dosyanın baytları elde edilir, sonra Base64 bu bayt dizisini metin karakterleriyle temsil eder. UTF-8 metni çözmek için Base64 çözümünden sonra baytları doğru karakter kodlamasıyla yorumlamak gerekir. Yanlış kodlama, bozulmuş karakterler üretse de alttaki Base64 dizisinin kendisi doğru çözümlenmiş olabilir.
Boyut artışı ve taşıma sınırları
Base64 çıktısı çoğu durumda ham bayt girdisinden yaklaşık üçte bir daha uzundur; padding ve taşıma biçiminin ek işaretleri de bulunabilir. Bu nedenle büyük bir görseli Base64’e çevirmek onu küçültmez ve JSON veya HTML içine gömmek belgeyi şişirebilir. Küçük ikonlar veya belirli veri protokollerinde gömme pratik olabilir; büyük dosyalarda ayrı statik dosya veya binary aktarım daha uygun olabilir. URL ve HTTP başlıklarının uzunluk sınırları uygulamaya göre değişir; büyük Data URL’ler tarayıcı geçmişi, loglar ve kopyalanan bağlantılarda gereksiz veri taşıyabilir. Önce hedef protokolün boyut ve alfabe kurallarını okuyun, sonra küçük temsil ile normal dosya aktarımını karşılaştırın.
Base64, Base64url ve padding
Klasik Base64 alfabesinde artı ve eğik çizgi bulunur; bazı URL bağlamlarında bunlar ayırıcı veya özel anlamla çakışabilir. Base64url bu iki sembol için URL uyumlu alternatif kullanır ve bazı sistemler son padding işaretlerini kaldırabilir. Padding’in kaldırılması kodlanmış verinin eksik olduğu anlamına gelmeyebilir, ancak çözücü ve formatın beklediği kurallar önemlidir. JSON Web Token parçaları Base64url biçiminde taşınır; bunu tek başına doğrulanmış imza veya güvenli şifreleme sanmayın. Kodu diğer sisteme göndermeden önce alıcı tarafın klasik Base64 mü, Base64url mü, padding dahil mi beklediğini netleştirin. Aynı isimli biçimler arasında varsayımla dönüşüm yapmak hatalı aktarım doğurabilir.
Çözümleme sırasında güvenli çalışma
Base64 çözümü keyfi baytlar, metin, görüntü veya yürütülebilir içerik oluşturabilir. Çözülen içeriği kaynak güvenilirliğini bilmeden çalıştırmayın veya tarayıcıda açmayın. Büyük veri tarayıcı belleğini tüketebilir; test için küçük örnek kullanın ve giriş uzunluğunu sınırlandırın. Çözüm sonrası dosya türünü yalnız uzantıdan varsaymayın; gerçek dosya imzası ve beklenen protokolle karşılaştırın. Base64 parolayı gizlemez, erişim denetimi sağlamaz ve bir anahtar olmadan şifreleme yerine geçmez. Gizli değerleri herkese açık araçlara yapıştırmayın. YulaTools dönüşüm adımı tarayıcıda çalışsa bile ortak cihaz, pano geçmişi veya tarayıcı eklentileri ayrı risk kaynaklarıdır.
Örnek iş akışı: API’de küçük bir veri alanı
Bir API belirli küçük binary alanı JSON içinde taşımayı gerektirdiğinde istemci önce dosyanın baytlarını okur, sonra Base64 veya protokolün istediği Base64url biçimine çevirir. Gönderici alan adını ve encoding biçimini sözleşmede belirtir; alıcı aynı kurala göre çözer ve beklenen bayt uzunluğu veya dosya türünü kontrol eder. Büyük dosya için aynı yaklaşım belgeyi yaklaşık üçte bir büyütebileceğinden, ayrı dosya yükleme veya binary içerik taşıyan endpoint daha verimli olabilir. Base64 çıktısını gizli anahtar gibi saklamayın: herkes tersine çevirebilir. Üretim tokenını test sırasında kullanmayın, küçük sentetik örnekle iki uç arasındaki çözme davranışını doğrulayın ve URL-safe karakter beklentisini açıkça yazın. Alıcı tarafında çözülen içeriği güvenilir dosya türü veya beklenen imza ile doğrulayın; Base64 metninin geçerli görünmesi, taşıdığı dosyanın güvenli olduğu anlamına gelmez. URL içine gömüyorsanız uzunluk sınırını, paylaşılabilirliği ve tarayıcı geçmişine düşme ihtimalini de göz önünde bulundurun.
Uygulanabilir kısa kontrol listesi
- Kaynağın metin mi ikili veri mi olduğunu ve karakter kodlamasını belirleyin.
- Hedef protokolün Base64 veya Base64url istediğini kontrol edin.
- Çıktıyı çözerek örnekle karşılaştırın; kodlamayı gizlilik saymayın.
Sık sorulan sorular
Base64 veriyi şifreler mi?
Hayır. Kodlama geri çevrilebilir ve gizlilik sağlamaz.
Neden çıktı daha uzun?
Baytlar metin alfabesinde gösterilir ve dolgu karakterleri eklenebilir.
Base64 ile Base64url aynı mı?
Tam değil; URL-safe biçim bazı karakterleri ve padding’i farklı ele alır.