Base64 Çevirici (Encode / Decode)
Metni Base64'e kodlayın veya Base64'ü metne çözün — UTF-8 uyumlu, tamamen tarayıcınızda.
1.278 görüntülenme
Nasıl Çalışır
Base64, ikili veriyi 64 yazdırılabilir karakterden oluşan bir alfabeyle düz metne çevirir: A–Z, a–z, 0–9, artı + ve / (64 sembol tam olarak 2⁶'dır, adının Base64 olmasının nedeni budur). Kodlayıcı girdiyi 3 baytlık (24 bit) gruplar halinde okur, bu 24 biti dörder 6'şar bitlik parçaya böler ve her 6 bitlik parçayı alfabeden bir karaktere eşler — böylece 3 bayt ikili veri her zaman tam olarak 4 karakter metne dönüşür. Girdi uzunluğu 3'ün tam katı değilse, son grup çıktı uzunluğunu 4'ün katı tutmak için bir veya iki = karakteriyle doldurulur.
Somut bir örnek: "Man" kelimesini oluşturan üç bayt (77, 97, 110 — ikilik tabanda 01001101 01100001 01101110) dörder 6'şar bitlik parçalara yeniden gruplanır (010011, 010110, 000101, 101110), her biri bir karaktere eşlenir ve TWFu elde edilir. Her 3 girdi baytı her zaman 4 çıktı karakterine genişlediğinden, Base64 kodlu veri orijinalinden güvenilir bir şekilde yaklaşık %33 daha büyüktür — 300 KB'lik bir görsel yaklaşık 400 KB'lik bir Base64 dizisine dönüşür; bu, görselleri data: URI'si olarak gömerken ya da ikili dosyaları JSON veya e-posta içine eklerken önemlidir.
Bu araç, metni önce UTF-8'e doğru şekilde kodlayarak Unicode'u düzgün işler; böylece çok baytlı karakterler ve emojiler ("çğü 😀") bozulmadan gidip döner — saf bir JavaScript btoa() çağrısı bunlarda hata verir çünkü karakter başına tek bayt bekler. Her şey tarayıcınızda yerel çalışır; yazdığınız hiçbir şey hiçbir yere gönderilmez.
Base64, çoğu kişinin fark etmediği pek çok yerde sürekli karşımıza çıkar: bir HTML <img src="data:image/png;base64,..."> etiketi, bir dosyaya bağlantı vermek yerine tüm görseli doğrudan sayfanın içine gömer; Authorization: Basic HTTP başlığı Base64 kodlu bir "kullaniciadi:parola" dizesi taşır (bu yalnızca biçimlendirmedir, koruma değildir — aktarım sırasında gizliliği gerçekten sağlayan TLS'dir); e-posta ekleri, orijinal MIME standardından beri Base64 ile kodlanır, çünkü SMTP 7 bitlik metin taşımak üzere tasarlanmıştır, ham ikili veri için değil; JSON Web Token'lar (JWT) ise imzalı bir ikili yapıyı nokta ile ayrılmış üç metin parçasına sığdırmak için URL-güvenli varyantı kullanır.
Bilinmesi Gerekenler
- Base64 şifreleme değildir — sıfır gizlilikli, herkesçe bilinen geri çevrilebilir bir gösterimdir. Aynı alfabeyle herkes anında çözebilir; yalnızca ikili veriyi yalnızca metin taşıyabilen kanallardan (e-posta MIME ekleri, data URI'leri, JSON alanları, HTTP Basic-Auth başlıkları) güvenle geçirmek için vardır, içeriği gizlemek için değil.
- URL-güvenli varyant:
+ve/URL'lerde özel anlam taşıdığından, "URL-güvenli" bir Base64 alfabesi bunları-ve_ile değiştirir ve genelde=dolgusunu atlar. Bu araç her iki varyantı da otomatik çözer. - Boyut maliyeti sabit ve öngörülebilir: ~%33'lük büyüme (4/3 oranı) yükün kendisi için kesindir — ham ikili yükleme kabul eden API'lerin, Base64'e sarılmış JSON gövdeleri isteyenlerden genelde daha bant genişliği verimli olmasının nedeni budur.
- Dolgu, kalanı söyler: tek bir
=, orijinal veri uzunluğunun 3'ün katından 2 bayt fazla olduğu anlamına gelir; iki=ise 1 bayt fazla demektir. Hiç dolgu yoksa girdi tam olarak 3'ün katı baytmış demektir.
Sıkça Sorulan Sorular
Çözülen çıktı neden bozuk görünüyor?
Genelde girdi geçerli Base64 değildir (kesik, ya da +/ yerine URL-güvenli -_ karakterli) veya orijinal baytlar zaten metin değildir. Bu araç URL-güvenli varyantı otomatik çözer.
Dosya kodlayabilir miyim?
Bu araç metin içindir. Dosyalar için kalıp data: URI'dir; bu, bir tarayıcının ya da e-posta istemcisinin nasıl görüntüleyeceğini bilmesi için Base64 dizesini bir MIME türü ön ekiyle sarar — çoğu dilde bunu oluşturmak tek satırdır (PHP base64_encode(file_get_contents(...)), JS FileReader.readAsDataURL). Çok büyük dosyalar, ~%33'lük boyut fazlası yüzünden genelde Base64'e sarılmak yerine ham ikili olarak gönderilmesi daha iyi olan dosyalardır.
Şifre saklamak için Base64 güvenli mi?
Hayır — hiçbir anahtar ya da sır içermeden, tasarımı gereği anında geri çevrilir. HTTP Basic auth onu yalnızca biçimlendirme için kullanır ("kullanici:parola"yı başlık-güvenli bir dizeye paketler) ve aktarımdaki gerçek gizliliği tamamen TLS/HTTPS'ye bırakır. Şifreler yavaş ve tuzlanmış bir algoritmayla (bcrypt, argon2, scrypt) hash'lenerek saklanmalıdır — asla kodlanarak, asla Base64 ile değil; çünkü herkes onu tek satır kodla geri çevirebilir.
Base64 kodlu veri neden her zaman yaklaşık %33 daha büyük?
Çünkü kodlama, girdinin her 3 baytını (24 bit) 4 çıktı karakterine eşler ve her çıktı karakteri bir baytın 8 biti yerine yalnızca 6 bit bilgi taşır — bu, içeriğe göre değişmeyen sabit bir 4/3 genişleme oranıdır. 3 MB'lık bir dosya her seferinde yaklaşık 4 MB'lik bir Base64 dizisine dönüşür.
Standart Base64 ile "URL-güvenli" varyant arasındaki fark ne?
Standart Base64 alfabesinde + ve / bulunur, ikisi de URL'ler ve dosya yolları içinde ayrılmış bir anlam taşır; bu yüzden URL-güvenli bir varyant bunları - ve _ ile değiştirir (ve genelde = dolgusunu atlar), böylece kodlanmış dizi kaçış karakteri gerektirmeden doğrudan bir URL veya dosya adında yer alabilir. Bu araç her iki varyantı da otomatik tanıyıp çözer.
Benzer Araçlar
Sorun Bildir
Base64 Çevirici (Encode / Decode)
Yorumlar
Henüz yorum yok — ilk yorumu siz yazın!