IT
OmnvertGörsel • Belge • Ağ

Base64 dönüştürücü (metin + dosya)

Metin ve dosyalar için Base64 kodla/çöz. URL‑safe, padding kontrolü, Data URI desteği ve büyük dosyalarda akıcı performans — tamamen tarayıcıda.

Verilerin tarayıcında kalır. Yükleme yok.
Girdi türü
Algılandı: Metin
Girdi
Karakter: 0 • Bayt: 0
Çıktı
Karakter: 0 • Bayt: 0

Bu Base64 aracı hakkında

Base64, sonunda her geliştiricinin hayatına dokunan teknik tuhaflıklardan biri; genelde altta yatan kavramın (ASCII metin olarak kodlanmış ikili veri) alıcı sistemin gerektirdiği belirli kodlama ayrıntılarından daha az önemli olduğu bir bağlamda. Standart Base64 alfabesi 64 karakter kullanıyor — A‑Z, a‑z, 0‑9, +, / — karakter başına 6 bit ikili veriyi temsil etmek için, sonunda dolgu olarak = işaretleriyle. Varyantlar (URL‑safe Base64 + ve / yerine - ve _ kullanıyor, MIME Base64 satırları 76 karakterde sarıyor, dolgusuz varyantlar son = işaretlerini düşürüyor vb.) hepsi aynı temel kodlamayı kullanıyor ama yüzey ayrıntılarında anlaşamıyor. İki sistem farklı varyant kullandığında kodlanmış veri aynı görünüyor ama aralarında temiz şekilde çözülmüyor; bu da bir hayli sinir bozucu hata ayıklama oturumu kategorisinin kaynağı.

Base64’ün en yaygın günlük kullanımı, ikilinin temiz iletilmediği metin tabanlı protokollerde ikili veri gömmek. E‑posta ekleri içeride Base64 kullanıyor; çünkü SMTP ASCII metin için tasarlandı ve ikili verinin yolculuğu hayatta atlatabilmesi için metinsel temsile ihtiyacı var. Veri URI’ları (CSS veya HTML’ye doğrudan görsel gömmek için kullanılan data:image/png;base64,...... şeması) ikili görsel verisini metin tabanlı işaretlemenin içine koymak için Base64 kullanıyor. JSON Web Token’lar metin tabanlı kimlik doğrulama tokenlarının içine ikili kriptografik imzalar koymak için Base64‑URL kullanıyor. HTTP Basic auth bir kullanıcı:şifre dizesini HTTP başlığına koymak için Base64 kullanıyor. Kalıp her zaman aynı: metinsel taşıma ikili içerikle buluşuyor ve Base64 ikisi arasında köprü kuruyor.

Metni Base64’e kodlamanın insanları sıkça yakalayan bir UTF‑8 nüansı var. ‘café’ dizesi dört karakter içeriyor ama UTF‑8 olarak kodlandığında beş bayt (é iki bayt alıyor). Bu dizeyi Base64’e kodlamak, kodlayıcının girdiyi karakter dizisi olarak (bazı uygulamalar) ya da bayt dizisi olarak (doğru uygulamalar) ele almasına bağlı olarak farklı sonuç üretiyor. Buradaki yol girdiyi UTF‑8 baytları olarak ele alıyor; bu tutarlı ve doğru davranış; kodlanmış çıktı, hangi ASCII dışı karakterler dahil olursa olsun orijinal UTF‑8 dizesine temiz şekilde çözülüyor. Yalnızca ASCII girdi için ayrım önemli değil; uluslararası metin için kesinlikle önemli.

URL‑safe Base64 web işi için en sık ihtiyaç duyulan varyant. Standart alfabe + ve / karakterlerini kullanıyor; ikisi de URL’lerde özel anlam taşıyor (+ bazen boşluk olarak yorumlanıyor, / yol ayırıcı), o yüzden bu karakterleri içeren kodlanmış veri URL’de güvenli yolculuk etmeden önce ek URL kodlamasına ihtiyaç duyuyor. URL‑safe Base64 + ve / yerine - ve _ koyarak bunu atlatıyor; ek kaçış olmadan bir URL parametresine doğrudan güvenle bırakılabilen çıktı üretiyor. JWT tokenları URL ve başlıklar üzerinden seyahat edecek şekilde tasarlandığı için özellikle URL‑safe Base64 kullanıyor; modern web çerçeveleri benzer sebeplerle URL‑safe varyantları varsayılan tutuyor.

Dolgu, anlaşılması gereken üçüncü varyasyon ekseni. Standart Base64 kodlanmış çıktıyı 4 karakterin katına dolduruyor; sonunda = işaretleri kullanarak (1 baytlık girdi 4 karakter oluyor: 2 veri + 2 dolgu, 2 baytlık girdi 1 dolgu işareti olan 4 karakter oluyor, 3 baytlık girdi dolgusuz 4 karakter oluyor). Bazı sistemler, özellikle kriptografi bağlamlarında, dolguyu düşürüyor; çünkü kodlanmış dizenin uzunluğunun zaten ima ettiğinden öteye bilgi taşımıyor. Çözücünün dolgu beklemesi gerekip gerekmediğini bilmesi gerekiyor — dolgulu girdiyi sıkı dolgusuz çözücüye vermek hata üretiyor; tersi de geçerli. Buradaki esnek çözücü her iki formu da kabul ediyor.

Dosya‑Base64 dönüşümü tam aracı yalnızca metinden ayıran vaka. Bir dosyayı Base64 olarak kodlamak, JSON yüklerine, yapılandırma dosyalarına ya da altta yatan ikilinin yolculuk etmesi gereken diğer metin tabanlı bağlamlara gömülebilen uzun bir dize üretiyor. Base64’ü dosyaya geri çözmek tersi: kodlanmış dize, orijinal baytları korunmuş indirilebilir bir dosya hâline geliyor. Prototip iş için data: URI’ları kuran, CI yapılandırmaları için test fikstür dosyalarını kodlayan ya da bir Base64 yükünün neden doğru çözülmediğini sorun gideren geliştiriciler için her iki yönü öngörülebilir davranışla tek araçta tutmak önemli.

Bilinmesi gereken performans özellikleri var; çünkü Base64 ara sıra ölçekte kullanılıyor. Kodlama yaklaşık yüzde 33 boyut artışı — 100 baytlık girdi 136 baytlık kodlanmış çıktı oluyor, artı dolgu. Maliyet basit ve kaçınılmaz; kompaktlık önemliyse Base64 yanlış araç ve ikili protokoller doğru olan. Buradaki tarayıcı tabanlı uygulama birkaç megabaytlık girdileri sorunsuz hâlletiyor, çok büyük girdilerde arayüzü tepkili tutmak için parçalar hâlinde çalışıyor ve tamamen istemci tarafında çalıştığı için veri tarayıcıdan hiç çıkmıyor. Gerçekten devasa girdiler için (yüz megabayt veya daha fazla) komut satırı araçları daha hızlı; ama günlük geliştirme işi için tarayıcı uygulaması fazlasıyla yeterli.

Yaygın tuzaklar ayrı bir notu hak ediyor; çünkü çoğu Base64 hata ayıklama oturumunun kaynağı bunlar. Kodlanmış verideki boşluk klasik tuzak — e‑postalardan, terminal çıktısından veya PDF dosyalarından kopyalanan Base64 dizeleri sıkça sıkı çözücüleri şaşırtan satır sonları, boşluklar veya görünmez Unicode karakterleri alıyor. Buradaki çözücü varsayılan olarak boşluğu çıkarıyor; bu da en yaygın kopya‑yapıştır bozulma moduna karşı bağışlayıcı yapıyor. Diğer tuzak URL‑kodlanmış artı işareti: URL parametresindeki bir Base64 dizesinin + karakterleri zaman zaman alıcı sistem tarafından otomatik boşluğa çözülüyor; bu da kodlanmış veriyi bozuyor; URL‑safe Base64 bu sorun sınıfının tamamını atlatıyor.

Base64 ile çalışırken güvenlik bağlamı önemli. Kodlama şifreleme değil — Base64 dizesini gören herkes tek bir fonksiyon çağrısıyla onu orijinal içeriğe çözebiliyor; anahtar ya da parola yok. Base64 formundaki kodlanmış parolalar veya sırlar, düz metinde olduğu kadar açık; sadece sıradan bir gözlemci için biraz daha az belli oluyor. Kodlama taşıma için, koruma için değil; Base64’ü güvenlik mekanizması olarak ele almak, formata yeni gelen geliştiriciler için en yaygın karışıklık noktalarından biri. Gerçek gizlilik gerekiyorsa veri taşıma için Base64‑kodlanmadan önce (gerçek bir anahtarla) şifrelenmeli.

Türkiye’de geliştiricilerin Base64 ile en sık karşılaştığı yerler arasında SMS API’leri (özellikle birçok yerli SMS sağlayıcı kimlik doğrulamasını Basic auth + Base64 üzerinden yapıyor), ödeme entegrasyonları (Iyzico, PayTR, GarantiPay gibi) ve resmi web servisleri (e‑Devlet bazı servislerinde Base64 kodlu yükler kullanıyor) bulunuyor. Aynı şekilde belge yükleme entegrasyonlarında — bir bankaya Base64 olarak gömülü PDF yüklemek, KEP üzerinden yapılan otomasyon süreçlerinde Base64 ile ek iletmek — geliştiricilerin bu aracı sürekli açıp test etmek için kullanması olağan. Kodlamanın doğru çalıştığından emin olmak için hızlı bir tur, üretim öncesi çoğu sürtünmeyi azaltıyor.

Operasyonel olarak araç metin ve dosya modunun yan yana olduğu tek çalışma alanı. Metin yapıştır ya da dosya bırak, kodla ya da çöz seç, varyantı yapılandır (standart ya da URL‑safe, dolgulu ya da dolgusuz), sonucu gerçek zamanlı gör, kopyala ya da indir. Dosyalar tamamen tarayıcıda işleniyor, hiç yüklenmiyor, hiç saklanmıyor. Aynı oturumda birden fazla girdi geçebiliyor — tek seferlik bir vakanın ötesinde, ilgili kodlama görevleri serisi üzerinde çalışırken işe yarıyor. Arayüz birkaç megabaytlık girdilerde tepkili kalıyor; gerçekten devasa girdilerde (yüz megabayt) tarayıcı sekmesi zorlanır ama günlük geliştirme işi için yanıt esasen anında.

Düzenli kullanım gören yaygın API entegrasyonları öngörülebilir. SMS gateway sağlayıcıları çoğu zaman Authorization başlığında Base64 kodlu kimlik bilgileri ile Basic auth kullanıyor. Ödeme gateway sandbox’ları tipik olarak Base64 kodlu webhook yükleri veya imza blokları bekliyor. Bulut depolama sağlayıcıları (S3, Google Cloud Storage) yükleme protokollerinde Base64 kodlu sağlama toplamlarını kabul ediyor. Kamuya açık webhook alıcıları zaman zaman ikili veriyi JSON taşıma boyunca korumak için gövde içeriğini Base64’e sarmalıyor. Bunlardan herhangi biriyle entegre olan geliştiriciler için, tarayıcı sekmesinden ayrılmadan test girdilerini kodlamanın ve yanıtları çözmenin hızlı bir yolu olması anlamlı bir iş akışı hızlandırıcısı.

Satır kırma konusunda bilinmesi gereken ince bir şey ara sıra ısırıyor. Base64’ün MIME varyantı satırları 76 karakterde CRLF satır sonuyla sarıyor; ham e‑posta kaynağında göreceğin format. Bazı sistemler katı şekilde bu sarmalamayı gerektiriyor ve sarılmamış Base64’ü reddediyor; diğer sistemler katı şekilde sarılmamış çıktı gerektiriyor ve gömülü satır sonu olan herhangi bir şeyi reddediyor. Buradaki araç çıktıyı her iki formda da üretebiliyor; daha yaygın modern tercih olduğu için varsayılan sarılmamış, ama hâlâ MIME tarzı sarmalamaya ihtiyaç duyan eski sistemler için seçenek var. Küçük bir detay; ama aramayı bilmediğinde beş dakikalık bir entegrasyonu iki saatlik bir hata ayıklama oturumuna çeviren türden bir detay.

Kullanım senaryoları

Kimlik bilgilerini taşımak için kodlama (şifreleme değil!)

HTTP Basic Auth gibi yerlerde Base64 görürsün; bu sadece kodlamadır. Güvenlik için TLS ve doğru secret saklama şarttır.

Görsel/dosyayı Base64’e çevirip Data URI üretme

Küçük ikonları HTML/CSS içine gömmek için PNG/JPG/SVG → Base64 yapıp data:mime/type;base64,... çıktısı alabilirsin.

API’den gelen Base64’ü dosyaya çevirme

Bir API Base64 döndürüyorsa, boşluk/yeni satır sorunlarını düzelterek dosyayı doğru uzantıyla indir.

JWT ve token’lar için URL‑safe Base64

JWT segmentleri genelde URL‑safe ve paddingsizdir. URL‑safe ve padding seçenekleriyle üret/incele.

Padding ve whitespace sorunlarını düzeltme

E‑posta veya log’dan kopyalanan Base64 satır kırılmış olabilir. “Boşlukları kaldır”, “URL‑safe düzelt”, “Padding ekle” ile normalize et.

Boyut artışını (~%33) kontrol etme

Base64 payload’ı büyütür. Sayaçlarla yaklaşık boyutu gör ve JSON içine gömerken limitleri aşmadığından emin ol.

Yaygın sorunlar ve çözümler

Geçersiz karakter hatası

Kopyalama sırasında tırnak, virgül veya HTML parçaları gelmiş olabilir. Kırp ve boşlukları kaldır.

Eksik/yanlış padding

Bazı sistemler '=' padding’i kaldırır. Sıkı padding açıkken hata alırsan padding ekle veya sıkı modu kapat.

URL‑safe ve standart karışması

Girdide '-' ve '_' varsa ama decoder '+' ve '/' bekliyorsa “URL‑safe düzelt” ile standart hale getir.

Data URI mi, ham Base64 mü?

data:...;base64, öneki varsa Data URI’dir. Araç otomatik ayıklar; dosya türünü de MIME’dan çıkarır.

UTF‑8 çözme hatası

İçerik metin değilse (ör. PNG/PDF), metin çözümü hataya düşer. Dosya modunu kullan.

Büyük girdide performans

Büyük dosyalarda işlem Web Worker’da parçalara bölünür. Gereksiz seçenekleri kapalı tutarak daha hızlı sonuç alırsın.

Örnekler

Metin (UTF‑8)
Hello, Omnvert! 👋🌍\nBase64 is not encryption.
URL‑safe Base64
SGVsbG8sIE9tbnZlcnQhIPCfkYvwn4yNCkJhc2U2NCBpcyBub3QgZW5jcnlwdGlvbi4
Data URI
data:text/plain;base64,SGVsbG8sIE9tbnZlcnQhIPCfkYvwn4yNCkJhc2U2NCBpcyBub3QgZW5jcnlwdGlvbi4=

SSS

Base64 şifreleme midir?

Hayır. Base64 bir kodlamadır; veriyi ASCII metne çevirir ama gizlemez. Güvenlik için TLS ve doğru secret yönetimi gerekir.

Neden Base64 daha büyük oluyor?

Base64 yaklaşık %33 büyütür (3 bayt → 4 karakter). Data URI öneki de ekstra karakter ekler.

Boşluk/yeni satır içeren Base64’ü çözebilir miyim?

Evet. “Boşluk/yeni satır kabul et” seçeneğini açın veya “Boşlukları kaldır” yardımcısını kullanın.

URL‑safe Base64 nedir?

“+” ve “/” karakterlerini “-” ve “_” ile değiştirir. JWT ve token’larda yaygındır.

Padding '=' ne işe yarar?

Base64 uzunluğunu 4’ün katı yapar. Bazı sistemler ister, bazıları özellikle URL‑safe token’larda kaldırır.

“Geçersiz padding” hatasını nasıl düzeltirim?

Boşlukları kaldırmayı, URL‑safe karakterleri standart forma çevirmeyi veya eksik '=' padding eklemeyi deneyin.

Çözünce “geçersiz UTF‑8” çıkıyor, neden?

İçerik metin değil, binary dosya olabilir (PNG/PDF/ZIP). Dosya modunda çözüp dosya olarak indirin.

Dosyayı Data URI olarak üretebilir miyim?

Evet. Dosya → Base64 modunda “Data URI olarak üret” seçeneğiyle data:mime/type;base64,... çıktısı alırsınız.

Verilerim sunucuya gidiyor mu?

Hayır. Bu sayfa tamamen tarayıcıda çalışır; hiçbir şey yüklenmez.

50MB+ dosyalarda donma olur mu?

Büyük girdiler Web Worker ile parçalara bölünerek işlenir; arayüz akıcı kalır.