Skip to content

Glossary

Base64

İkili-metin kodlaması

By Published Updated

Base64, rastgele ikili veriyi 64 ASCII karakteri kullanarak temsil eden bir kodlama şemasıdır: büyük harf A-Z, küçük harf a-z, 0-9 rakamları ve + ile / sembolleri. 4 baytın katına tamamlanmak için = karakteriyle doldurulur. RFC 4648'de tanımlanmıştır.

Üç girdi baytı dört Base64 karakterine kodlanır; dolayısıyla kodlanmış biçim kaynaktan yaklaşık %33 daha büyüktür. Kodlama ve kod çözme hem belirleyici hem de kesindir — kalite kaybı yoktur, yalnızca boyut artışı vardır.

Başlıca kullanım alanları:

  • Yalnızca metin protokollerine ikili veri yerleştirme. E-posta (MIME ekleri), JSON (ikili alanlar yerel olarak desteklenmez), HTML/CSS'de veri URI'leri.
  • JWT (JSON Web Token). JWT yükleri, HTTP başlıklarına ve URL'lere güvenle sığması için Base64url ile kodlanır.
  • İkiliyi veritabanlarında veya yapılandırma dosyalarında saklama (örneğin SQLite BLOB sütunları sorunsuz çalışır ancak sürücü düzeyinde işlem gerektirir; Base64 tutan TEXT sütunu daha taşınabilirdir).

Base64url, aynı RFC'de tanımlanan ve +'yı - ile, /'yi _ ile değiştiren bir varyandır. Bu iki değişiklik, kodlanmış veriyi URL açısından güvenli kılar — ne - ne de _, bir URL'de yüzde kodlaması gerektirmez. JWT ve modern web API'leri her yerde Base64url kullanır.

Tarayıcınızda Base64 aracımızla kodlayın veya kod çözün; araç UTF-8 metnini doğru biçimde işler (JavaScript btoa / atob temel fonksiyonları bunu yapmaz).

Çalışılmış örnek

Üç baytlık ASCII dizisi “Man”'ı kodlayın. Baytlar 0x4D 0x61 0x6E veya ikili olarak 01001101 01100001 01101110'dur. 24 biti birleştirin ve dört 6 bitlik gruba bölün: 010011 010110 000101 101110 = 19, 22, 5, 46. Base64 alfabesi bu indisleri T, W, F, u olarak eşler — sonuç “TWFu”. Girdi uzunluğu (3 bayt) zaten 3'ün katı olduğundan dolgu gerekmez. Şimdi “Ma”'yı (2 bayt) kodlayın: bitler 01001101 01100001'dir; 18 bit yapmak için iki sıfır bit ile doldurulur; üç 6 bitlik gruba bölünür 010011 010110 000100 = 19, 22, 4 = T, W, E. Grubun eksik üçüncü karakterini işaretlemek için bir = ekleyin: “TWE=”. Kod çözme işlemi tersine çalışır ve dolguyu atar. %33'lük boyut artışı tam olarak 4/3 oranıdır — 3 baytlık girdi 4 baytlık çıktı üretir.

Ne zaman ve neden önemlidir

Base64, ikili verinin yazdırılamayan baytları bozan bir kanaldan geçmesi gerektiğinde önem taşır — SMTP e-postası (7 bitlik metin için tasarlanmış), URL sorgu dizeleri, JSON değerleri, XML CDATA bölümleri, ortam değişkenleri, YAML yapılandırma dosyaları ve kodlama uyumsuzluğu olan sistemler arasındaki pano aktarımları. Klasik hata, gerekli olmadığı yerde Base64 kullanmaktır: Postgres'teki bir bytea sütununda saklanan ikili blob kodlamaya ihtiyaç duymaz; ancak aynı blob bir SQL dize değeri olarak eklenirken ihtiyaç duyar. İkinci klasik hata ise tam tersidir — HTTP/2 çoğullamalı bağlantılarda ağ tasarrufu yerine şişirilmiş dosya boyutu daha büyük çıkabileceğinden bir JPEG'i CSS'e data URI olarak Base64 ile gömmek. Modern görüntü satır içi ekleme politikaları genellikle sınırı 4-8 KB civarında çizer. Referans: RFC 4648 — Base16, Base32 ve Base64 Veri Kodlamaları.

Dolgu ve sondaki "=" karakterleri: Base64, her 3 girdi baytını 4 çıktı karakterine paketlediğinden, uzunluğu 3'ün katı olmayan girdiler sonda 1 veya 2 dolgu karakteri üretir. YQ== tek bir bayta ("a") çözülür; YWI= iki bayta ("ab"); YWJjdolgu olmaksızın üç bayta ("abc"). Pek çok Base64 ayrıştırıcı, katı RFC uyumu gerektirmesine rağmen dolgu olmadan girdiyi kabul eder — JWT bağlamlarındaki Base64url kasıtlı olarak dolguyu atlar. Özellikle katı ve esnek uygulamalar arasında köprü kurarken, kodlayıcı/kod çözücü çiftinizin dolgu konusunda hemfikir olup olmadığını her zaman kontrol edin.

Base64 neden şifreleme değildir: Base64, herkesin anahtar olmadan geri döndürebileceği belirleyici bir eşlemedir. Bir Base64 dizesini çevrimiçi bir kod çözücüye yapıştırmak, düz metni anında ortaya çıkarır. Bu bir kodlamadır (temsil değişikliği), şifreleme değil (gizlilik dönüşümü). Saldırgan tarafından okunabilecek herhangi bir dosyada parolaları, API anahtarlarını veya kişisel verileri Base64 olarak saklamak, bunları düz metin olarak saklamakla işlevsel olarak eşdeğerdir. Gizlilik için, herhangi bir Base64 sarmalama öncesinde gerçek bir anahtar yönetimi ile uygun şifreleme (AES-GCM, ChaCha20-Poly1305) kullanın. Referans: RFC 4648 — Base16, Base32 ve Base64 Veri Kodlamaları.

Aracı deneyin

URL güvenli varyant dahil herhangi bir dizeyi veya dosyayı Base64'e kodlayın ya da çözün.

Base64 aracını açın →

Frequently asked questions

Base64 nedir?
Base64, rastgele ikili veriyi 64 ASCII karakterlik bir diziye dönüştüren bir kodlama şemasıdır (A-Z, a-z, 0-9, +, /). Veri boyutunu %33 artırır; ancak ikili veriyi e-posta gövdeleri, JSON ve HTTP başlıkları gibi yalnızca metin bağlamlarına güvenli biçimde gömmek için kullanılır.
Base64 pratikte nasıl kullanılır?
JWT belirteçleri, noktalarla birleştirilmiş üç Base64url kodlu segmentten oluşur. Bir görüntüyü veri URL'si olarak doğrudan CSS dosyasına gömmek Base64 kullanır. SMTP, protokolün tarihsel olarak yalnızca 7 bitlik ASCII'yi işlemesi nedeniyle ekleri Base64 blokları olarak gönderir.
Base64 ile Base64url arasındaki fark nedir?
Base64url, standart +'yı - ile ve /'yi _ ile değiştirir; böylece çıktı yüzde kodlaması gerektirmeden URL'lerde ve dosya adlarında güvenle kullanılabilir. JWT ve OAuth belirteçleri Base64url kullanır; e-posta ekleri standart Base64 kullanır.
Base64 veriyi şifreler mi?
Hayır — Base64 bir şifreleme değil, bir kodlamadır. Herhangi bir kod çözücü özgün baytları anında kurtarabilir. İkili veriyi metin açısından güvenli hale getirmek için kullanılır; verileri gizlemez veya korumaz.

Related

Published May 14, 2026 · Last reviewed May 31, 2026