🔐
← Rehberlere dön

Base64 Nedir? Yeni Başlayanlar İçin Eksiksiz Bir Rehber

· Etiketler: base64, encoding, binary-to-text, web-development, data-transfer

Base64 Kodlaması Nedir?

Base64, ikili verileri 64 karakterlik bir alfabe kullanarak bir ASCII dize formatında temsil eden bir ikiliden-metne kodlama şemasıdır. Başlangıçta MIME (Multipurpose Internet Mail Extensions) aracılığıyla e-posta ekleri için tasarlanmıştır ve web'de en yaygın kullanılan kodlama yöntemlerinden biri olmaya devam etmektedir.

Resim, dosya veya sıkıştırılmış baytlar gibi ikili verileri metin için oluşturulmuş bir kanal üzerinden göndermeniz gerektiğinde, Base64 başvurulacak çözümdür. Rastgele baytları alır ve bunları harfler, rakamlar ve birkaç özel karakterden oluşan güvenli, taşınabilir bir dizeye dönüştürür.

Base64 Nasıl Çalışır?

Base64, ikili verileri üç baytlık (24 bit) gruplar halinde işleyerek ve her grubu dört Base64 karakterine dönüştürerek çalışır. "Base64" adı, kodlama alfabesinin 64 farklı karakter kullanmasından gelir: A-Z, a-z, 0-9, + ve /.

Kodlama Algoritması Adım Adım

  1. 3 bayt (24 bit) giriş verisi alın
  2. Bunları dört adet 6 bitlik gruba bölün
  3. Her 6 bitlik değeri (0-63) Base64 alfabe tablosuna eşleyin
  4. Giriş uzunluğu 3'e bölünemiyorsa dolgu (=) ekleyin

İşte somut bir örnek. "Man" dizesi şu şekilde kodlanır:

  • M (ASCII 77) = 01001101
  • a (ASCII 97) = 01100001
  • n (ASCII 110) = 01101110

Birleştirilmiş: 01001101 01100001 01101110 → 6 bitlik gruplara bölün:

  • 010011 = 19 → T
  • 010110 = 22 → W
  • 000101 = 5 → F
  • 101110 = 46 → u

Böylece "Man", "TWFu" olur.

Dolgu Hakkında Ne Denebilir?

Giriş uzunluğu 3 baytın katı değilse, Base64 çıktıyı 4 karakterin katı yapmak için dolgu karakterleri (=) ekler:

  • 1 bayt giriş → 2 Base64 karakteri + 2 dolgu karakteri (==)
  • 2 bayt giriş → 3 Base64 karakteri + 1 dolgu karakteri (=)

Örneğin, "M"'ye karşılık gelen tek bayt TQ== olarak kodlanır.

Base64 Alfabe Tablosu

| Değer | Karakter | Değer | Karakter | Değer | Karakter | Değer | Karakter | |-------|------|-------|------|-------|------|-------|------| | 0 | A | 16 | Q | 32 | g | 48 | w | | 1 | B | 17 | R | 33 | h | 49 | x | | 2 | C | 18 | S | 34 | i | 50 | y | | 3 | D | 19 | T | 35 | j | 51 | z | | 4 | E | 20 | U | 36 | k | 52 | 0 | | 5 | F | 21 | V | 37 | l | 53 | 1 | | 6 | G | 22 | W | 38 | m | 54 | 2 | | 7 | H | 23 | X | 39 | n | 55 | 3 | | 8 | I | 24 | Y | 40 | o | 56 | 4 | | 9 | J | 25 | Z | 41 | p | 57 | 5 | | 10 | K | 26 | a | 42 | q | 58 | 6 | | 11 | L | 27 | b | 43 | r | 59 | 7 | | 12 | M | 28 | c | 44 | s | 60 | 8 | | 13 | N | 29 | d | 45 | t | 61 | 9 | | 14 | O | 30 | e | 46 | u | 62 | + | | 15 | P | 31 | f | 47 | v | 63 | / |

Base64 Kodlamanın Yaygın Kullanım Alanları

E-posta Ekleri (MIME)

Base64, MIME (Multipurpose Internet Mail Extensions) için oluşturulmuştur. SMTP gibi e-posta protokolleri 7 bitlik ASCII metin için tasarlanmıştır, bu nedenle PDF'ler, resimler ve ZIP dosyaları gibi ikili ekler e-posta ile gönderilmeden önce Base64 olarak kodlanmalıdır.

HTML ve CSS'te Veri URL'leri

Base64, veri URL'lerini kullanarak resimleri, yazı tiplerini ve diğer medyayı doğrudan HTML veya CSS dosyalarına gömmenizi sağlar:

<img src="data:image/png;base64,iVBORw0KGgo..." alt="Embedded Image" />

Bu, küçük varlıklar için faydalı olabilecek ekstra bir HTTP isteğini ortadan kaldırır.

JSON Web Token'lar (JWT)

JWT'ler, her token'ın başlığını, yükünü ve imzasını kodlamak için Base64'ün URL güvenli varyantını (Base64url) kullanır. Kimlik doğrulama sistemlerinde eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9 gibi dizeler görmenizin nedeni budur.

Veritabanlarında İkili Veri Depolama

Birçok veritabanı metin depolama için optimize edilmiştir ve ham baytları düzgün bir şekilde işleyemeyebilir. İkili verileri Base64 olarak kodlamak, resimleri, serileştirilmiş nesneleri veya şifrelenmiş verileri metin sütunlarında saklamanıza olanak tanır.

API Yükleri

Bir REST veya GraphQL API'si üzerinden — özellikle JSON formatında — ikili veri gönderirken, Base64 standart seçimdir çünkü JSON yerel olarak ham baytları temsil edemez.

Base64 Dosya Boyutunu Artırır mı?

Evet. Base64 kodlaması veri boyutunu yaklaşık %33 artırır. Her 3 bayt giriş için 4 bayt çıktı alırsınız. Bu ek yük, ikili verileri yalnızca metin kanalları üzerinden taşınabilir hale getirmenin karşılığıdır.

Base64 Şifreleme midir?

Hayır. Bu yaygın bir yanılgıdır. Base64 bir kodlama şemasıdır, şifreleme değildir. Bir Base64 dizesini alan herkes, herhangi bir anahtara ihtiyaç duymadan onu orijinal veriye geri çözebilir. Hiçbir güvenlik veya gizlilik sağlamaz. Verileri korumanız gerekiyorsa, şifreleme (AES gibi) kullanın ve ardından isteğe bağlı olarak şifrelenmiş baytları iletim için Base64 ile kodlayın.

Base64 ve Diğer İkiliden-Metne Kodlamalar

| Kodlama | Alfabe Boyutu | Ek Yük | En İyi Kullanım | |----------|--------------|----------|----------| | Base64 | 64 karakter | ~%33 | Veri aktarımı ve gömme | | Base32 | 32 karakter | ~%60 | İnsan tarafından okunabilir, büyük/küçük harf duyarsız bağlamlar | | Base16 (Hex) | 16 karakter | %100 | Hata ayıklama, bellek dökümleri, renk kodları | | Ascii85 | 85 karakter | ~%25 | Adobe PostScript, PDF akışları |

Base64, alan verimliliği ve geniş uyumluluk arasında dengeli bir ödünleşim sunarak web'deki en popüler ikiliden-metne kodlama haline gelir.

Base64 Kodlamayı Çevrimiçi Deneyin

Kendi verilerinizi kodlamaya hazır mısınız? Tarayıcınızda anında metin veya dosya dönüştürmek için ücretsiz çevrimiçi Base64 kodlayıcı ve kod çözücümüzü kullanın. Kurulum veya kayıt gerekmez.