Base64, ikili verileri 64 adet yazdırılabilir ASCII karakteri kullanarak temsil eden bir ikili-metin kodlama şemasıdır. E-posta (MIME), HTTP başlıkları ve XML gibi yalnızca metin işleyen sistemler üzerinden ikili verileri güvenli biçimde taşımak için tasarlanmıştır. "Base64" adı, kodlama alfabesinde kullanılan 64 karakterden gelmektedir.
Kodlama, üç baytlık girişi (24 bit) dört adet 6-bitlik gruba bölerek çalışır. Her 6-bit değer, Base64 alfabesindeki bir karakterle eşleştirilir. Giriş uzunluğu üçün katı değilse, çıkış karakter sayısının dörde katı olması için dolgu karakterleri (=) eklenir. Sonuç, orijinal veriden yaklaşık %33 daha büyük bir dize olmakla birlikte düz metin olarak güvenle iletilmek için uygundur.
Bu Aracı Neden Kullanmalısınız?
Bu kodlayıcı, Unicode metni doğru şekilde işler, hem standart hem de URL-safe varyantları destekler ve tamamen tarayıcınızda kodlar — verileriniz makinenizden hiç ayrılmaz.
⚡
Anlık Kodlama
Siz yazarken sonuçlar görünür. Tıklanacak buton yok, sunucu yanıtı beklenmez.
🔗
URL-safe Geçişi
Tek tıklamayla standart (+/) ve URL-safe (-_) kodlama arasında geçiş yapın. URL-safe varyant için dolgu otomatik olarak kaldırılır.
🔒
Tamamen İstemci Taraflı
Tüm kodlama, yerel btoa API ve TextEncoder kullanılarak tarayıcınızda yerel olarak gerçekleşir. Hiçbir sunucuya hiçbir şey gönderilmez.
🎛️
Unicode Desteği
Kodlama öncesinde encodeURIComponent kullanarak emoji, CJK karakterleri ve tüm UTF-8 metinler dahil tam Unicode'u doğru şekilde işler.
Bu Çevrimiçi Base64 Kodlayıcı Nasıl Kullanılır
Hesap yok, kurulum yok, yükleme yok — metni yapıştırın ve kodlanmış çıktı anında görünür.
1
Metninizi Yapıştırın veya Yazın
Giriş alanına tıklayın ve herhangi bir metin yapıştırın — düz dizeler, JSON yükleri, API anahtarları, e-posta adresleri veya herhangi bir UTF-8 içerik. Kodlama, yazarken canlı olarak güncellenir.
2
Varyantınızı Seçin
MIME, HTTP Basic Auth ve genel kullanım için Standart (RFC 4648) seçin. JWT token'ları, sorgu dizesi parametreleri, dosya adları ve + ya da / URL ayrıştırmayı bozacak herhangi bir bağlam için URL-safe seçin.
3
Çıktıyı Kopyalayın
Kopyala'ya tıklayarak Base64 dizesini tek tıklamayla panonuza gönderin. Çıktı, doğrudan kodunuza, yapılandırma dosyanıza veya API isteğinize yapıştırılmaya hazırdır.
4
Uygulamanızda Kullanın
Kodlanmış dizeyi ihtiyaç duyulan yere yapıştırın — Authorization başlıkları, veri URI'leri, JSON alanları, ortam değişkenleri veya Kubernetes gizli anahtarları. URL-safe çıktı için dolgu zaten kaldırılmıştır.
Base64 Alfabesi
Base64, 64 karakter kullanır: büyük harfler A–Z (değerler 0–25), küçük harfler a–z (26–51), rakamlar 0–9 (52–61) ve 62 ile 63 değerleri için iki özel karakter. Standart RFC 4648 varyantı + ve / kullanır; URL-safe varyant, URL'ler ve dosya adlarındaki çakışmaları önlemek için bunları - ve _ ile değiştirir.
A–Z
0–25
ABCDEFGHIJKLMNOPQRSTUVWXYZ
a–z
26–51
abcdefghijklmnopqrstuvwxyz
0–9
52–61
0123456789
+, /
62–63
Standart RFC 4648 — URL'lerde ve dosya adlarında kullanmaktan kaçının
Standart Base64 alfabesi, URL'lerde ve dosya yollarında özel karakter olan + ve / kullanır. URL-safe varyant bunları - ve _ ile değiştirir ve genellikle = dolgu karakterlerini atlar. JWT token'ları, sorgu dizelerindeki veriler, dosya adları ve + veya / karakterlerinin yanlış yorumlanacağı bağlamlarda URL-safe kodlama kullanın.
Giriş
Standart
URL-safe
Man
TWFu
TWFu
Hello
SGVsbG8=
SGVsbG8
A
QQ==
QQ
1+1=2
MSsxPTI=
MSsxPTI
Yaygın Kullanım Senaryoları
E-posta Ekleri (MIME)
SMTP, 7-bit ASCII metin için tasarlanmıştır. Base64 kodlama, MIME standardı tarafından e-posta iletilerine ikili ekleri (resimler, PDF'ler, yürütülebilir dosyalar) güvenli biçimde gömmek için kullanılır.
Veri URI'leri
Veri URI'leri kullanarak görüntüleri, yazı tiplerini ve diğer öğeleri doğrudan HTML veya CSS'e gömün: data:image/png;base64,... — küçük kaynaklar için ekstra HTTP isteklerini ortadan kaldırır.
API Yükleri
REST API'leri, JSON'da ikili alanları (dosya yüklemeleri, kriptografik anahtarlar, sertifikalar) gömerken Base64 kodlama gerektirir; çünkü JSON'ın ikili türü yoktur.
Yapılandırma Dosyaları
Kubernetes gizli anahtarları, ortam değişkenleri ve CI/CD yapılandırmaları, kaçış sorunlarını önlemek için ikili gizli anahtarları ve sertifikaları genellikle Base64 dizesi olarak saklar.
HTTP Temel Kimlik Doğrulama
HTTP Authorization: Basic başlığı, kimlik bilgilerini Base64(kullanıcı_adı:şifre) olarak kodlar. Bu şifreleme değildir — yalnızca başlıklarda taşıma için kodlama sağlar.
JWT Token'ları
JSON Web Token'ları, başlık ve yük bölümlerini kodlamak için URL-safe Base64 (base64url) kullanarak token'ı URL'lerde ve HTTP başlıklarında kaçış gerektirmeden güvenle kullanılabilir hale getirir.
Base64 Kullanılmaması Gereken Durumlar
Base64 bir taşıma kodlamasıdır, güvenlik mekanizması değildir. Üretimde gerçek sorunlara neden olan en yaygın yanlış kullanımlar şunlardır:
✕
Güvenlik veya Şifreleme için Kullanmayın
Base64 önemsiz biçimde geri alınabilir — çözümlemek için herhangi bir anahtar veya parola gerekmez. Bir Base64 dizesi gören herkes saniyeler içinde çözümleyebilir. Base64'ü şifreleme, karma oluşturma veya erişim kontrolünün yerine asla kullanmayın.
✕
Sıkıştırma için Kullanmayın
Base64, çıktı boyutunu yaklaşık %33 artırır. Sıkıştırmanın tam tersidir. Yük boyutunu azaltmak için kullanmayın — bunun yerine gzip, Brotli veya zstd kullanın.
✕
İkili Dosya Depolamak için Kullanmayın
Büyük ikili dosyaları veritabanlarında veya JSON API'lerinde Base64 olarak saklamak önemli ölçüde depolama ve bellek israfı yaratır. Nesne depolama (S3, R2, Cloudflare) kullanın ve ikiliyi doğrudan sunun.
Kod Örnekleri
Popüler dillerde ve ortamlarda bir dizgiyi Base64 ile kodlama:
JavaScript (browser)
// Standard Base64
const encoded = btoa(unescape(encodeURIComponent(text)))
// URL-safe Base64 (no padding)
const urlSafe = btoa(unescape(encodeURIComponent(text)))
.replace(/\+/g, '-').replace(/\//g, '_').replace(/=/g, '')
Çevrimiçi birkaç Base64 kodlayıcı mevcuttur. Günlük geliştirici kullanımı için temel farklılaştırıcılar gizlilik, doğruluk ve varyant desteğidir.
Tamamen Özel — Sunucu Yok
Bu kodlayıcı, yerel btoa API ve TextEncoder kullanarak tamamen tarayıcınızda çalışır. Metniniz hiçbir sunucuya iletilmez — API anahtarları, token'lar ve sırlar için güvenlidir.
Unicode'u Doğru Kodlama
Pek çok çevrimiçi Base64 aracı ASCII olmayan girişleri sessizce bozar. Bu araç, önce UTF-8 baytlarına kodlayarak emoji, CJK, Arapça ve tüm UTF-8 metinleri dahil tam Unicode'u doğru şekilde işler.
Her İki Varyant Tek Yerde
Çoğu araç yalnızca standart Base64 sunar. Bu kodlayıcı, otomatik dolgu işlemiyle hem standart (+/) hem de URL-safe (-_) varyantlarını sağlar — manuel karakter değiştirmeye gerek yoktur.
Sıkça Sorulan Sorular
Base64 şifrelemeyle aynı mı?
Hayır. Base64 bir kodlama şemasıdır, şifreleme değildir. Herkes tarafından kolayca geri alınabilir — deşifre için anahtar veya şifre gerekmez. Hassas verileri korumak için asla Base64 kullanmayın. Bu amaç için uygun şifreleme (AES, RSA) kullanın.
Base64 çıktısı neden = veya == ile biter?
Base64, 3 baytlık (24 bit) gruplar halinde çalışır ve 4 Base64 karakteri üretir. Giriş uzunluğu 3'ün katı değilse, çıktı uzunluğunun 4'ün katı olması için dolgu karakterleri (=) eklenir. Bir = son grupta 2 bayt olduğunu; iki = ise 1 bayt olduğunu gösterir.
URL-safe Base64 nedir?
URL-safe Base64 (RFC 4648 §5'te tanımlanmış), + yerine - ve / yerine _ kullanarak kodlanmış dizenin yüzde kodlaması olmadan URL'lerde, dosya adlarında ve HTTP başlıklarında kullanılmasını sağlar. Dolgu = karakterleri de genellikle atlanır.
Base64, dosya boyutunu ne kadar artırır?
Base64 kodlama, boyutu yaklaşık %33 artırır. Her 3 bayt girdi, 4 karakter çıktıya dönüşür. 1 MB'lık bir dosya için Base64 çıktısı yaklaşık 1,37 MB olacaktır.
Bu araçla ikili dosyaları kodlayabilir miyim?
Bu araç metin dizelerini (UTF-8 baytları olarak işlenen) kodlar. Rastgele ikili dosyaları (resimler, PDF'ler, yürütülebilir dosyalar) kodlamak için ham baytları okuyan bir dil kütüphanesi veya CLI aracı kullanın.
btoa() ile Buffer.from().toString('base64') arasındaki fark nedir?
btoa(), Latin-1 dizeleri üzerinde çalışan bir tarayıcı yerleşiğidir; önce UTF-8 baytlarına kodlamadığınız sürece (encodeURIComponent kullanarak) ASCII olmayan karakterler için hata fırlatır. Node.js'deki Buffer.from(metin).toString('base64'), UTF-8 dizelerini doğrudan işler ve sunucu tarafında tercih edilen yaklaşımdır.
Base64 ikili dosyalarla çalışır mı?
Bu araç metin dizelerini UTF-8 baytları olarak Base64'e kodlar. İkili dosyalar (resimler, PDF'ler, yürütülebilir dosyalar) için ham baytları okuyan bir CLI aracı veya dil kütüphanesi kullanın. Tarayıcıda, Base64 kodlu ikili içerik içeren bir veri URI döndüren FileReader.readAsDataURL() kullanın.
Kodlama için boyut sınırı var mı?
Bu araç, sunucu tarafı sınırı olmadan tamamen tarayıcıda çalışır. Pratik sınırlar tarayıcı belleğinize bağlıdır. Çok büyük girişler için (birkaç MB'ın üzerinde), base64 (Linux/macOS) veya certutil -encode (Windows) gibi bir CLI aracı daha verimlidir.