0Pricing
Cryptology Academy · Ders

Base64 Kodlaması: Nasıl Çalışır

E-postalarda, JWT'lerde ve veri iletiminde kullanılan kodlama düzeni Base64'ün gizemini çözün.

Base64 Kodlaması: Nasıl Çalışır, CoddyKit'te ücretsiz bir Cryptology Academy dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Cryptology Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Cryptology Academy kursu toplamda 4 dersten oluşur.

İkili Verilerin Metinle Gösterilmesi Neden Gerekir

Birçok sistem, e-posta, HTTP başlıkları ve XML dahil olmak üzere, metni işleyecek şekilde tasarlanmıştı; ancak keyfi ikili verileri işleyemiyordu. 0x00 (boş değer) veya 0x1A (denetim karakteri) bayt değeri ayrıştırma hatalarına ya da veri bozulmasına yol açabilir.

Base64 kodlaması, keyfi ikili verileri metinle sınırlı sistemler için güvenli olan bir ASCII karakter alt kümesine dönüştürür; böylece görüntüler ve sertifikalar gibi ikili içerikler metin tabanlı protokollere gömülebilir.

8 Bitlik Baytları 6 Bitlik Gruplara Ayırma

Base64, üç adet 8 bitlik baytı (toplam 24 bit) alıp bunları dört adet 6 bitlik gruba ayırarak çalışır. Her 6 bitlik grup, 0 ile 63 arasında bir değeri temsil eder ve bu değer Base64 alfabesindeki bir karaktere karşılık gelir.

Bu 3'e 4 oranı, her 3 baytlık girdinin 4 karakterlik çıktı üretmesi ve boyutun %33 artması anlamına gelir. Hesap tam bölünür; çünkü 3 bayt = 24 bit = 6 bitlik 4 grup demektir.

Base64 Alfabesi

Base64 alfabesinde 64 karakter bulunur: büyük harfler A-Z (0-25 indisleri), küçük harfler a-z (26-51 indisleri), rakamlar 0-9 (52-61 indisleri), artı işareti + (62. indis) ve sağa eğik çizgi / (63. indis).

Bu alfabe, metin sistemlerinde sorun çıkarabilecek tüm denetim karakterlerinden ve noktalama işaretlerinin çoğundan kaçınır. Base64 çıktısındaki her karakter, neredeyse tüm metin protokollerinde güvenle kullanılabilen yazdırılabilir bir ASCII karakteridir.

= İşaretleriyle Dolgu

Girdi uzunluğu 3 baytın katı değilse dolgu gerekir. Bir bayt kaldığında, bu bayt 12 bitlik bir gruba doldurulur; bunun sonucunda iki Base64 karakteri ve ardından "==" gelir. İki bayt kaldığında, bunlar üç Base64 karakteri ve ardından "=" üretir.

= dolgu işaretleri kodlanmış veri değildir; son bloğun 3 bayttan kısa olduğunu kod çözücüye bildirir. Çıktı uzunluğunun her zaman 4 karakterin katı olmasını sağlarlar.

Kodlama Örneği: Man

"Man" için ASCII değerleri M=77 (01001101), a=97 (01100001), n=110 (01101110) şeklindedir. Birleştirildiğinde: 010011010110000101101110.

6 bitlik gruplara ayırın: 010011 | 010110 | 000101 | 101110 = 19 | 22 | 5 | 46. Base64 alfabesindeki karşılıklarına bakıldığında: 19=T, 22=W, 5=F, 46=u. "Man", "TWFu" olarak kodlanır.

Base64url Varyantı

Standart Base64, URL'lerde ve dosya adlarında özel anlamları olan + ve / karakterlerini kullanır. Base64url, bu karakterleri - ve _ ile değiştirerek URL'lerde, dosya adlarında ve çerez değerlerinde güvenle kullanılabilen bir varyant oluşturur.

JWT'ler (JSON Web Belirteçleri), başlık ve yük bölümleri için Base64url kodlamasını kullanır. JOSE (JSON Object Signing and Encryption) standartları tamamen Base64url üzerine kuruludur.

Base64 Nerelerde Kullanılır

Base64; e-posta MIME eklerinde (ikili dosyaları metin tabanlı e-posta için kodlamak amacıyla), JWT belirteçlerinde (JSON başlığını ve yükünü kodlamak için), HTML'deki veri URI'lerinde (görüntüleri doğrudan CSS/HTML içine gömmek için) ve X.509 sertifikalarının PEM biçiminde kullanılır.

PEM (Privacy Enhanced Mail) biçimi, DER ile kodlanmış ikili sertifikaları "-----BEGIN CERTIFICATE-----" ve "-----END CERTIFICATE-----" başlıkları arasına Base64 olarak yerleştirir.

Base64 Güvenlik Sağlamaz

Base64 şifreleme değildir. Anahtar kullanmayan, geri döndürülebilir bir kodlamadır. Base64 ile kodlanmış verileri gören herkes, özgürce kullanılabilen araçları veya herhangi bir programlama dilinde tek satırlık bir komutu kullanarak bunların kodunu hemen çözebilir.

Yaygın bir hata, Base64 ile kodlanmış parolaların veya belirteçlerin "gizli" olduğunu düşünmektir. Öyle değildir. Siz kodunu çözebiliyorsanız saldırgan da çözebilir. Güvenlik için kodlama değil, şifreleme gerekir.

Kod Çözme Çok Kolaydır

Base64 kodunu çözmek, kodlamak kadar kolaydır. Her 4 karakterlik Base64 grubu, 6 bitlik değerlerine geri eşlenir, birleştirilir ve baytlara ayrılır. = dolgusu, son grubun kaç baytı temsil ettiğini gösterir.

Python'da: import base64; base64.b64decode("TWFu"), b"Man" değerini döndürür. Bu süreç belirlenimlidir, kayıpsızdır ve anahtar ya da gizli bilgi gerektirmez.

Base64 Ek Yükü ve Verimliliği

Base64'in %33'lük boyut ek yükü (3 girdi baytı başına 4 çıktı baytı) ve MIME'in gerektirdiği şekilde her 76 karakterde bir satır sonu eklenmesi, Base64'i büyük ikili veri aktarımları için verimsiz kılar.

İkili çerçeveleme kullanan HTTP/2 ve ikili çerçeveler kullanan WebSockets gibi modern ikili protokoller, ham baytları doğrudan işleyebilir ve yüksek performans gerektiren bağlamlarda Base64 ihtiyacını ortadan kaldırabilir.

Base32 ve Base58: Diğer Kodlama Şemaları

Base32, 32 karakterlik bir alfabe (A-Z ve 2-7) kullanır. Base64'ten daha uzun çıktılar üretir; ancak büyük/küçük harfe duyarsızdır ve harf büyüklüğünün kaybolabileceği bağlamlarda kullanıma uygundur. TOTP için paylaşılan sırlar çoğunlukla Base32 ile kodlanır.

Bitcoin tarafından cüzdan adresleri için kullanılan Base58, 0, O, I ve l gibi görsel olarak belirsiz karakterleri kaldırır. Bu, adresleri kopyalarken oluşan yazım hatalarını azaltır. Bunun karşılığında Base58, 2'nin kuvveti değildir; bu nedenle kodlama biraz daha karmaşıktır.

Base64 Alfabesi Bilgi Testi

Base64 kodlaması hakkındaki bilginizi sınayın.

Temel Noktalar: Base64 Kodlaması

Base64, bitleri 6 bitlik parçalara ayırıp bunları 64 karakterlik bir alfabeyle eşleyerek ikili verileri metne dönüştürür. %33'lük bir boyut ek yükü oluşturur ve 3 baytın katı olmayan girdiler için = dolgusu kullanır.

Base64 güvenlik sağlamaz. Gizlilik için değil, aktarım uyumluluğu için kullanılır. Base64url (-/_) URL'ler için güvenli varyanttır ve JWT'lerde kullanılır. Kod çözme anahtar gerektirmez ve milisaniyeler sürer.

Sıkça Sorulan Sorular

“Base64 Kodlaması: Nasıl Çalışır” dersi ücretsiz mi?

Evet — “Base64 Kodlaması: Nasıl Çalışır” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Cryptology Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Cryptology Academy kursu toplamda 4 dersten oluşur.

“Base64 Kodlaması: Nasıl Çalışır” dersinde ne öğreneceğim?

E-postalarda, JWT'lerde ve veri iletiminde kullanılan kodlama düzeni Base64'ün gizemini çözün. Cryptology Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Cryptology Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Cryptology Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.

“Base64 Kodlaması: Nasıl Çalışır” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Cryptology Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Cryptology Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Base64 Kodlaması: Nasıl Çalışır
  2. ASCII, Unicode ve Metin Gösterimi
  3. Kriptografik Çıktıda Onaltılık Gösterim
  4. Kodlama ve Şifreleme ile Özetleme Arasındaki Fark
← Cryptology Academy Sayfasına Dön