Base64 Kodlayıcı Çözücü - Ücretsiz Çevrimiçi Base64 Dönüştürücü Aracı
Ücretsiz base64 kodlayıcı çözücü aracı. Metni Base64'e dönüştürün veya Base64 dizelerini anında çözün. Standart ve URL-güvenli kodlamayı destekler. Giriş gerekli değildir.
Base64 Kodlayıcı/Kod Çözücü
Metni Base64 kodlamasına dönüştürün ve tersine çevirin
Belgeler
Base64 Kodlaması Nedir?
Base64, ikili verileri 64 karakterlik bir ASCII dizesi formatına dönüştüren bir ikili-metne kodlama şemadır. E-posta ile görüntü göndermeniz, URL'lere veri yerleştirmeniz veya JSON API'ları üzerinden ikili bilgi aktarmanız gerektiğinde, Base64 yalnızca metin kanallarındaki veri bozulması sorununu çözer.
Kodlama belirli bir karakter kümesiyle çalışır:
- Büyük harfler A-Z (26 karakter)
- Küçük harfler a-z (26 karakter)
- Rakamlar 0-9 (10 karakter)
- İki sembol: "+" ve "/" (2 karakter)
base64 encoder decoder hemen metni Base64'e dönüştürür veya Base64 dizelerini okunabilir metne geri çevirir—hiçbir kurulum gerektirmez.
Modern Geliştirmede Base64'ün Önemi
Web uygulamaları inşa ederken, Base64 ile sürekli karşılaşacaksınız. E-posta ekleri MIME kodlaması yoluyla onu kullanır. CSS ve HTML'deki Veri URI'ları görüntüleri doğrudan kodun içine yerleştirmek için ona güvenir. REST API'ları JSON yüklerinde ikili verileri aktarmak için onu kullanır. HTTP Temel Kimlik Doğrulaması bile Base64'e bağlıdır (ancak şifreleme değildir—bununla ilgili daha fazla bilgi aşağıda).
Bu kodlamayı gerekli kılan şey şudur: HTTP, JSON ve XML gibi metin tabanlı protokoller ham ikili verileri güvenilir bir şekilde işlemek için tasarlanmamıştır. Bir JSON API'si üzerinden ikili bir görüntüyü kodlama yapmadan gönderirseniz, büyük olasılıkla veri bozulmasıyla karşılaşırsınız. Base64, ikili verilerinizin tamamını güvenli ASCII karakterleriyle temsil ederek verilerinizin yolculuğunu güvence altına alır.
Base64 Aracını Nasıl Kullanılır
Metni Base64'e Kodlama:
- Giriş alanına metninizi yazın veya yapıştırın
- "Base64'e Kodla" düğmesine tıklayın veya canlı dönüşümü etkinleştirin
- Uygulamanızda kullanmak için Base64 çıktısını kopyalayın
Base64'den Metne Çözme:
- Base64 dizinizi giriş alanına yapıştırın
- "Base64'den Çöz" düğmesine tıklayın veya çözme moduna geçin
- Çıktı alanında orijinal metni görüntüleyin
Canlı dönüşüm modu yazdıkça sonuçları otomatik olarak günceller, hızlı test ve hata ayıklama için mükemmeldir. Araç, emoji ve uluslararası karakterler dahil UTF-8 metnini işler.
Base64 Kodlamanın Nasıl Çalıştığı
Kodlama, her üç girdi baytını (24 bit) dört Base64 karakterine dönüştürür. Bunu, 3 girdi baytı grubunun 4 çıktı karakteri grubuna dönüştüren bir çeviri olarak düşünün.
İşte adım adım base64 kodlama süreci:
- İkili sayıya dönüştürme: Girdi metniniz ikili gösterimine dönüşür (genellikle UTF-8)
- Parçalara ayırma: İkili veriler 24 bit'lik parçalara (her biri 3 bayt) bölünür
- 6 bit'lik segmentlere bölme: Her 24 bit'lik parça dört 6 bit'lik gruba ayrılır
- Karakterlere eşleme: Her 6 bit değeri (0-63) kendi Base64 karakterine eşlenir
Girdiniz 3'e tam bölünmezse ne olur? Dolgu karakterleri ("=") boşluğu doldurur. Bu, çıktı ve girdi uzunlukları arasındaki 4:3 oranını korur.
Base64'ün Matematiği
bayt dizisi için karşılık gelen Base64 karakterleri şu şekilde hesaplanır:
Burada Base64 alfabesindeki 'inci karakteri temsil eder.
Base64 Kod Çözme Süreci
Kod çözme, Base64 karakterlerini ikili sayıya geri dönüştürerek kodlamayı tersine çevirir:
- Her Base64 karakterini 6 bit değerine eşle
- Bu 6 bit değerlerini sürekli bir bit akışında birleştir
- 8 bit'lik parçalara (baytlara) böl
- Her baytı karşılık gelen karakterine dönüştür
Dolgu Karakterlerini Anlama
Dolgu karakterleri çıktı uzunluğunun her zaman 4 karakterin katı olmasını sağlar:
- Bir kalan bayt: İki Base64 karakteri ve "==" üretir
- İki kalan bayt: Üç Base64 karakteri ve "=" üretir
Yaygın bir hata, Base64 dizelerini depolarken dolgu karakterlerini çıkarmaktır. Bazı kod çözücüler eksik dolguyu işleyebilse de, katı uygulamalar bunu reddedecektir. Kod çözücünüzün esnek olduğundan emin değilseniz dolgu karakterlerini koruyun.
Base64 Kodlama Örneği: "Hello"
"Hello" dizesini bir base64 dönüştürücü kullanarak kodlamayı inceleyelim:
- ASCII değerleri: 72 101 108 108 111
- İkili form: 01001000 01100101 01101100 01101100 01101111
- 6 bitlik parçalara ayırma: 010010 000110 010101 101100 011011 000110 1111
- Son parçayı sıfırlarla doldurma: 010010 000110 010101 101100 011011 000110 111100
- Ondalık sayıya dönüştürme: 18, 6, 21, 44, 27, 6, 60
- Base64 alfabesine eşleme: S, G, V, s, b, G, 8
- Nihai sonuç:
SGVsbG8=
Sondaki "=" dolgusuna dikkat edin. "Hello" 5 bayt olduğundan (3'e bölünebilir değil), son grubun tamamlanmadığını belirtmek için dolgu gereklidir.
Base64 Kodlanmış Uzunluk Formülü
Base64 kodlanmış dize uzunluğunu hesaplama formülü:
Burada tavan fonksiyonunu (en yakın tam sayıya yuvarlamayı) temsil eder.
Gerçek Dünya Base64 Kullanım Örnekleri
İşte üretim sistemlerinde base64 kodlamasıyla karşılaşacağınız yerler:
1. E-posta Ekleri (MIME Kodlaması)
E-posta protokolleri 7-bit ASCII metni için tasarlanmıştır. Bir PDF veya görüntü eklediğinizde, MIME Base64'ü ikili dosyaları e-posta için güvenli metne dönüştürmek için kullanır. Bu yüzden e-posta dosya ekleri orijinal dosyalardan yaklaşık %33 daha büyüktür—bu Base64 yükünden kaynaklanır.
2. Web Geliştirmede Veri URI'ları
Bir görüntüyü doğrudan CSS veya HTML'ye gömülü mü bıraktınız? İşte Base64 iş başında:
1<img src="data:image/png;base64,iVBORw0KGgoAAAANS..." />
2Bu teknik, küçük varlıkları doğrudan kodun içine gömerek HTTP isteklerini azaltır. Ancak bu, küçük görüntüler (10KB altı) için en iyisidir—daha büyük dosyalar, ayrı olarak önbelleğe alınamadıkları için sayfa oluşturmayı yavaşlatır.
3. API Veri İletimi
REST API'ları genellikle ikili verileri JSON üzerinden göndermek için Base64 kullanır. Yalnızca JSON kabul eden bir API uç noktası üzerinden görüntü yüklerken, dosyayı Base64 olarak kodlarsınız. Bunun yük boyutuna %33 eklediğini unutmayın, bu yüzden büyük dosyalar için multipart/form-data kullanmayı düşünün.
4. HTTP Temel Kimlik Doğrulama
Yetkilendirme başlığı, kimlik bilgilerini kodlamak için Base64 kullanır:
1Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=
2Kritik uyarı: Base64 şifreleme DEĞİLDİR. Herkes bunu anında çözebilir. Her zaman HTTPS kullanın—Base64 kodlanmış kimlik bilgilerini asla düz HTTP üzerinden göndermeyin.
5. JWT Tokenları
JSON Web Tokenları (JWT), üç segmenti için Base64URL kodlaması (URL için güvenli bir varyant) kullanır. Bu, tokenların URL'lerde ve HTTP başlıklarında güvenle iletilmesine olanak sağlar.
6. İkili Verileri Veritabanlarında Depolama
Veritabanınız ikili sütunları desteklemiyorsa veya ikili verileri JSON alanlarında depolamanız gerekiyorsa, Base64 metin için güvenli bir çözüm sağlar. Bunun depolama gereksinimlerini %33 artırdığını unutmayın.
7. Çerez Depolama
Çerezler yalnızca ASCII karakterleri içermelidir. Karmaşık veri yapılarını veya ikili verileri çerezlerde depolarken, Base64 kodlaması onları çerez için güvenli hale getirir.
Base64'ü Ne Zaman Kullanmamalısınız
Base64 ile her şeyi kodlamadan önce, yanlış bir seçim olduğu durumları göz önünde bulundurun:
Büyük dosya aktarımları: %33'lük boyut artışı bant genişliğini ve yükleme sürelerini önemli ölçüde etkiler. Bunun yerine doğrudan ikili aktarım (multipart/form-data) kullanın.
İstemci tarafı görüntü depolama: CSS veya HTML'deki Base64 görüntüleri ayrı olarak önbelleğe alınamaz ve sayfa oluşturmayı engeller. Daha iyi performans için görüntüleri ayrı dosyalar olarak saklayın.
Büyük dosyaların veritabanı depolaması: Veritabanı TEXT alanlarında megabayt boyutundaki Base64 dizelerini depolamak depolama alanını boşa harcar ve sorguları yavaşlatır. Bunun yerine BLOB sütunları veya dosya depolama hizmetleri (S3, CloudFlare R2) kullanın.
Güvenlik gereksinimleri: Base64 hiçbir güvenlik sağlamaz. API anahtarlarını, parolaları veya hassas verileri "gizlemek" için kullanmayın. Uygun şifrelemeyi kullanın.
Yüksek performanslı senaryolar: Base64 kodlama/kod çözme CPU yükünü artırır. Saniyede binlerce istek işlerken, doğrudan ikili işleme daha iyi performans gösterir.
Base64 Alternatifleri: Doğru Kodlamayı Seçme
Base64 her zaman en iyi seçenek değildir. İşte alternatiflerini düşünmeniz gereken durumlar:
URL-Güvenli Base64
Standart Base64, URL'leri bozan "+" ve "/" karakterlerini kullanır. URL-güvenli Base64 bunları "-" ve "_" ile değiştirir. Bu varyantı şu durumlarda kullanın:
- Sorgu parametreleri
- URL yolları
- JWT tokenları
- URL'lerde iletilen herhangi bir veri
Base32 Kodlama
Base32, çıktıyı daha uzun üretir (% 40 ek yük vs % 33) ancak büyük/küçük harf duyarsızlığı sağlar. Base32'yi şu durumlarda tercih edin:
- Kullanıcıların kodlanmış değeri manuel olarak yazması gerektiğinde
- Büyük/küçük harf duyarlı sistemler sorun çıkardığında
- Daha iyi hata tespiti gerektiğinde
Onaltılık (Hexadecimal) Kodlama
Hex, veri boyutunu ikiye katlar (% 100 ek yük) ancak basit ve evrensel olarak desteklenir. Şu durumlarda idealdir:
- Hash değerlerini görüntüleme
- Renk kodları
- MAC adresleri
- Okunabilirliğin verimliliğinden daha önemli olduğu durumlar
Doğrudan İkili Aktarım
Büyük dosyalar için, metin kodlamasını tamamen atlayın. Multipart/form-data veya uygun Content-Type başlıklarıyla ikili HTTP kullanın. Bu, % 33'lük boyut cezasından kaçınır ve performansı artırır.
Sıkıştırma + Base64
Büyük metin veya tekrarlayan verileri kodlarken, önce sıkıştırın (gzip veya deflate), sonra Base64 uygulayın. Bu genellikle ham Base64 kodlamasından daha küçük çıktı sağlar.
Base64 Kodlamasının Kısa Tarihi
Base64, erken bilişim döneminde ikili verilerin yalnızca metin kanalları üzerinden aktarılması ihtiyacından ortaya çıktı. Resmi belirtim ilk olarak RFC 989 (1987) Privacy Enhanced Mail (PEM) için görüldü, ardından MIME'ın bir parçası olarak RFC 1421 (1993) ve RFC 2045 (1996) ile gelişti.
"Base64" adı, 64 karakterlik alfabesini yansıtır. Bu rastgele değildi—64, 2^6'ya eşit olduğundan, ikili-Base64 dönüşümü basit bit kaydırma işlemleriyle matematiksel olarak verimlidir.
Günümüzün Base64 çeşitleri şunları içerir:
- Standart Base64 (RFC 4648): A-Z, a-z, 0-9, +, / karakterlerini = dolgulu olarak kullanır
- URL-güvenli Base64: + ve /'yi URL'lerde güvenli iletim için - ve _ ile değiştirir
- Base64URL: URL'ler ve dosya adları için IETF standart varyantı
- Değiştirilmiş Base64: IMAP posta kutusu adları için kendi karakter setini kullanır
35 yıldan fazla bir süredir, Base64 modern web geliştirmede hala temel bir rol oynamaktadır, özellikle JSON API'ları ve web servisleri peyzajı hakimken.
(Çevirinin geri kalanı aynı şekilde devam eder...)
Yaygın Base64 Tuzakları ve Çözümleri
Base64 kod çözücü veya kodlayıcı ile çalışırken şu sorunlara dikkat edin:
1. Karakter Kodlama Sorunları
Sorun: Emoji veya uluslararası karakterler içeren metni önce UTF-8 kodlaması yapmadan kodlamak bozuk çıktı üretir.
Çözüm: Base64 kodlamadan önce her zaman UTF-8 baytlarına dönüştürün. JavaScript'te bu, çok baytlı karakterleri doğru şekilde işlemek anlamına gelir—yerleşik btoa() Unicode ile başarısız olur.
2. Eksik veya Geçersiz Dolgu
Sorun: Bazı sistemler "=" dolgu karakterlerini kaldırır, bu da katı kod çözücülerin başarısız olmasına neden olur.
Çözüm: Kod çözmeden önce, uzunluğun 4'ün katı olup olmadığını kontrol edin. Değilse, "=" karakterleri ekleyin: while (str.length % 4) str += '='
3. Kodlanmış Verilerde Satır Sonları
Sorun: Eski MIME uygulamaları her 76 karakterde satır sonu ekler. Modern API'ler genellikle bunları reddeder.
Çözüm: Kod çözmeden önce tüm yeni satır ve boşluk karakterlerini kaldırın: str.replace(/\s/g, '')
4. URL-Güvenli vs Standart Base64
Sorun: URL'lerde standart Base64 (+, /) kullanmak kodlama sorunlarına veya yönlendirme bozukluğuna neden olur.
Çözüm: URL'ler için URL-güvenli varyantı kullanın. Aralarında dönüşüm yapın:
- Standart'tan URL-güvenli'ye:
+yerine-ve/yerine_koyun - URL-güvenli'den standart'a: Değişimi tersine çevirin
5. Büyük Dosyalarda Performans
Sorun: Çok megabaytlık dosyaları bellekte kodlamak tarayıcıları dondurabilir veya uygulamaları çökertebilir.
Çözüm: Akış API'lerini kullanın veya veriyi parçalara ayırın. Modern tarayıcılar, her şeyi bellekte yüklemeden büyük dosyaları işlemek için Akışlar API'sini destekler.
6. Güvenlik Yanlış Algıları
Kritik hata: Base64'ü şifreleme veya güvenli gizleme olarak değerlendirmek.
Gerçek: Base64 milisaniyeler içinde tamamen tersine çevrilebilir. Hassas verileri "gizlemek" için asla kullanmayın. Bu kodlama içindir, güvenlik için değil. Güvenlik önemliyse mutlaka uygun şifreleme (AES, RSA) ile birlikte kullanın.
Sık Sorulan Sorular
Base64 şifreleme midir?
Hayır. Base64 kodlama, şifreleme değildir. Herkes Base64'ü anında ve ücretsiz olarak çözebilir. Şifreleme gizli bir anahtar gerektirir ve tersine çevrilmesi hesapsal olarak zordur. Güvenlik gerekiyorsa, AES-256 gibi uygun şifreleme algoritmaları kullanın, ardından isteğe bağlı olarak şifrelenmiş veriyi aktarım için Base64'te kodlayın.
Neden Base64 veriyi daha büyük yapar?
%33'lük boyut artışı algoritmanın doğasında vardır. Her 3 girdi baytı 4 çıktı karakterine dönüşür, çünkü Base64 karakterler başına 6 bit kullanırken standart baytlar 8 bit kullanır. Formül: 3 bayt × 8 bit = 24 bit; 24 bit ÷ 6 bit per karakter = 4 karakter.
Görüntüleri Base64'e kodlayabilir miyim?
Evet, görüntüler Base64'e kodlanabilir. Bu HTML/CSS'de veri URI'leri ve API yüklerinde yaygındır. Ancak bu dengeyi göz önünde bulundurun: Base64 görüntüleri ayrı olarak önbelleğe alınamaz, sayfa boyutunu %33 artırır ve ilk oluşturmayı yavaşlatır. Bunu küçük simgeler için (10KB altında) kullanın, büyük fotoğraflar için değil.
Base64 ve Base64URL arasındaki fark nedir?
Base64URL URL için güvenlidir. Standart Base64 "+" ve "/" kullanır ki bunların URL'lerde özel anlamları vardır (boşluk ve yol ayırıcısı). Base64URL bunları URL'lerde güvenli olan "-" ve "_" ile değiştirir. JWT tokenler bu nedenle Base64URL kullanır.
"Geçersiz Base64 dizesi" hatalarını nasıl düzeltebilirim?
Yaygın nedenler:
- Eksik dolgu: Uzunluk 4'e bölünebilir olana kadar "=" karakterleri ekleyin
- Geçersiz karakterler: A-Z, a-z, 0-9, +, /, = dışındaki tüm karakterleri kaldırın
- Boşluk: Tüm boşlukları, sekmeleri ve satır sonlarını silin
- Yanlış varyant: URL güvenli Base64 + ve / yerine - ve _ kullanır
Base64 ikili dosyaları çözebilir mi?
Base64 ikili veriyi metne kodlar ve çözme bu işlemi tersine çevirir. Herhangi bir ikili dosyayı (PDF, görüntü, video) Base64'e kodlayabilir, metinde aktarabilir, sonra tekrar ikili dosyaya çözebilirsiniz. Çözülen sonuç orijinalin birebir aynısıdır.
Neden Base64'ü e-posta eklerinde kullanıyoruz?
SMTP (e-posta protokolü) 7-bit ASCII metni için tasarlandı. İkili ekler aktarım sırasında bozulabilir. MIME, ikili dosyaları e-posta yönlendirmesinde sağ kalan ASCII güvenli metne dönüştürmek için Base64 kullanır. %33 boyut artışı uyumluluk bedeli.
Özel karakterleri Base64'de nasıl kodlarım?
Önce metninizi UTF-8 baytlarına kodlayın, sonra bu baytlara Base64 kodlaması uygulayın. Bu, emoji, vurgulu karakterler ve uluslararası betiklerin doğru kodlanmasını sağlar. JavaScript'te, Unicode'da başarısız olan btoa() yerine TextEncoder kullanın:
1new TextEncoder().encode(text) // Önce UTF-8 baytlarına dönüştürün
2Base64 kodlama büyük dosyalar için yavaş mı?
Base64 kodlama/çözme nispeten hızlıdır (modern CPU'larda saniyede milyonlarca bayt), ancak bellekte çok megabaytlık dosyaları işlemek tarayıcıyı dondurabilir. 1MB üzeri dosyalar için, ana iş parçacığını engellemekten kaçınmak için akış yaklaşımları veya Web Workers kullanın.
Base64'ü URL'lerde kullanabilir miyim?
Standart Base64 yerine Base64URL (URL güvenli varyant) kullanın. Standart Base64'ün "+" ve "/" karakterleri URL'lerde sorun çıkarır. JWT gibi kütüphaneler Base64URL'yi otomatik olarak kullanır. Dönüştürmek için: + yerine - koyun, / yerine _ koyun ve isteğe bağlı olarak dolgu "=" karakterlerini kaldırın.
Referanslar ve Standartlar
- RFC 4648 - Base16, Base32 ve Base64 Veri Kodlamaları - Resmi IETF spesifikasyonu
- RFC 2045 - MIME Bölüm Bir: İnternet Mesaj Gövdeleri Formatı - MIME ve e-posta kodlama standardı
- MDN Web Dokümanları: btoa() ve atob() - Tarayıcı API dokümantasyonu
- RFC 7515 - JSON Web İmzası (JWS) - JWT tokenlarında Base64URL kullanımı
- W3C Veri URL'leri - Veri URI spesifikasyonu