Ana Sayfa/Blog/Base64 Kodlama Nedir? Ne Zaman Kullanılır?

Base64 Kodlama Nedir? Ne Zaman Kullanılır?

Base64, ikili (binary) verileri ASCII metin formatına dönüştüren bir kodlama yöntemidir. Adını, kullandığı 64 karakterlik alfabe setinden alır. Önemli bir ayrım olarak, Base64 bir şifreleme yöntemi değildir — verileri gizlemez, yalnızca farklı bir formatta temsil eder. Herkes Base64 ile kodlanmış bir metni kolayca çözebilir.

Base64 Nasıl Çalışır?

Base64 kodlama süreci şu adımlarla gerçekleşir:

  1. Girdi verisi 8 bitlik baytlara ayrılır
  2. Bu baytlar 6 bitlik gruplar halinde yeniden düzenlenir
  3. Her 6 bitlik grup, Base64 alfabe tablosundaki bir karakterle eşleştirilir
  4. Gerekirse sonuna = (padding) karakterleri eklenir

Base64 alfabesi şu 64 karakterden oluşur: A-Z (26), a-z (26), 0-9 (10), + ve / (2). URL-safe varyantında + yerine -, / yerine _ kullanılır.

Neden 6 Bit?

Her 3 baytlık (24 bit) girdi verisi, 4 adet 6 bitlik gruba dönüşür. Bu da 3 baytlık verinin 4 karakterle temsil edilmesi anlamına gelir. Bu nedenle Base64 ile kodlanmış veri, orijinalinden yaklaşık %33 daha büyüktür. Bu boyut artışı, Base64 kullanılırken göz önünde bulundurulması gereken en önemli faktördür.

Padding (Dolgu) Karakteri

Girdi verisinin uzunluğu 3'ün katı değilse, çıktının sonuna = karakterleri eklenir:

// 1 bayt girdi → 2 karakter + 2 padding
"A"  → "QQ=="

// 2 bayt girdi → 3 karakter + 1 padding
"AB" → "QUI="

// 3 bayt girdi → 4 karakter, padding yok
"ABC" → "QUJD"

Padding, çözücünün orijinal verinin tam uzunluğunu bilmesini sağlar. Bazı uygulamalar padding olmadan da çalışabilir ancak standart Base64 padding gerektirir.

Kullanım Alanları

1. Data URI (Veri URI)

Küçük görselleri, fontları veya diğer dosyaları doğrudan HTML veya CSS içine gömmek için Data URI kullanılır:

<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUg..." alt="ikon">

.icon {
  background-image: url("data:image/svg+xml;base64,PHN2ZyB4...");
}

Bu yöntem, küçük dosyalar için ek HTTP isteklerini ortadan kaldırır. Ancak büyük dosyalarda boyut artışı dezavantaj yaratır. Genel kural olarak 5KB'den küçük dosyalar için uygundur.

2. API ve Veri İletimi

JSON gibi metin tabanlı formatlarda ikili veri göndermek gerektiğinde Base64 kullanılır:

{
  "dosyaAdi": "belge.pdf",
  "icerik": "JVBERi0xLjQKMSAwIG9iago8PAovVHlwZSAvQ2..."
}

REST API'lerinde dosya yükleme, resim gönderme ve sertifika iletimi gibi işlemlerde sıklıkla karşılaşılır.

3. E-posta (MIME)

E-posta protokolü (SMTP) yalnızca 7-bit ASCII destekler. Eklentiler, HTML içerik ve Türkçe karakterli metinler Base64 ile kodlanarak iletilir. MIME standardı bu amaçla Content-Transfer-Encoding: base64 başlığını kullanır.

4. Kimlik Doğrulama

HTTP Basic Authentication'da kullanıcı adı ve şifre Base64 ile kodlanarak gönderilir:

Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=
// "username:password" ifadesinin Base64 kodlaması

Uyarı: Bu, şifreleme değildir. HTTPS olmadan kullanıldığında kimlik bilgileri kolayca ele geçirilebilir.

JavaScript'te Base64 Kullanımı

// Metin kodlama
const kodlanmis = btoa("Merhaba Dünya");
console.log(kodlanmis); // "TWVyaGFiYSBEw7xueWE="

// Metin çözme
const cozulmus = atob("TWVyaGFiYSBEw7xueWE=");
console.log(cozulmus); // "Merhaba Dünya"

// Unicode desteği için
const kodla = (str) => btoa(unescape(encodeURIComponent(str)));
const coz = (str) => decodeURIComponent(escape(atob(str)));

Base64 Ne Zaman Kullanılmamalı?

Base64 Aracını Kullanın

Metinleri ve dosyaları hızlıca Base64 formatına dönüştürmek veya Base64 kodlu verileri çözmek için Base64 Kodlayıcı/Çözücü aracımızı kullanabilirsiniz. Araç tamamen tarayıcınızda çalışır.

Bu konuyla ilgili araçlarımızı da deneyin: JSON Formatter, Regex Test Aracı, cURL Builder

← Tüm Yazılar