Base64 Dosya Kodlayıcı

Herhangi bir dosyayı Base64'e kodlayın — PDF, ZIP, resimler ve daha fazlası

Herhangi bir dosyayı buraya sürükleyin veya yüklemek için tıklayın

Herhangi bir dosya türü — PDF, ZIP, resimler, ikili dosyalar

Base64 Dosya Kodlaması Nedir?

Base64 dosya kodlaması ikili dosyaları (PDF'ler, ZIP'ler, resimler, yürütülebilirler, yazı tipleri, ses) RFC 4648'de tanımlanan alfabeyi kullanarak düz ASCII metne dönüştürür. Her üç baytlık ikili giriş dört Base64 karakterine dönüşür ve yalnızca metin için tasarlanmış kanallardan geçebilen bir metin temsilini oluşturur: JSON API payload'ları, XML belgeleri, e-posta gövdeleri, HTML öznitelikleri ve ortam değişkenleri.

Metinden Base64'e kodlamadan (dizeler üzerinde çalışır) farklı olarak, dosyadan Base64'e kodlama herhangi bir dosyanın ham bayt akışını format ne olursa olsun okur. Bir PDF'in ikili başlıkları, bir ZIP'in sıkıştırılmış blokları ve bir PNG'nin piksel verileri aynı şekilde ele alınır: yeniden kodlanacak bir sektet dizisi olarak. Sonuç her zaman geçerli ASCII'dir ve yazdırılabilir karakterleri kabul eden her yere gömülebilir.

Uzlaşma boyuttur: Base64 çıkışı orijinal ikiliden yaklaşık %33 daha büyüktür. 1 MB'lık bir PDF için, bu yaklaşık 1,33 MB Base64 metni anlamına gelir. Bu ek yük kodlamaya özgüdür ve hiçbir uygulama bunu önleyemez. Buna rağmen, Base64 dosya kodlaması metin yalnızca biçimlere ikili veri gömmenin standart yöntemi olmaya devam ediyor, MIME'de (RFC 2045), veri URI'lerinde (RFC 2397) ve JSON Web Token'larında (RFC 7519) belirtiliyor.

Bu Base64 Dosya Kodlayıcı Neden Kullanılsın?

Bu araç, dosyaları FileReader API'sini kullanarak doğrudan tarayıcınızda Base64'e kodlar. Hiçbir dosya sunucuya yüklenmez — tüm dönüştürme JavaScript'te istemci tarafında gerçekleşir.

🛡
Gizlilik Öncelikli İşleme
Dosyanız hiçbir zaman cihazınızı terk etmez. FileReader API dosyayı yerel olarak belleğe okur ve Base64 çıkışı tamamen tarayıcıda oluşturulur. Ağ isteği yapılmaz.
Anında Sürükle ve Bırak
Herhangi bir dosyayı araca sürükleyin ve Base64 çıkışını anında görün. Yükleme beklentisi yok, ilerleme çubukları yok, sunucu tarafından dayatılan dosya boyutu sınırları yok.
📁
Herhangi Bir Dosya Biçimi
PDF'ler, ZIP'ler, resimler, yazı tipleri, ses dosyaları, WebAssembly modülleri veya başka bir ikili biçimi kodlayın. Kodlayıcı tüm dosyaları ham bayt akışları olarak değerlendirir — biçim önemli değil.
🔒
Hesap Gerekli Değil
Kaydolmadan, oturum açmadan veya çerezleri kabul etmeden aracı hemen kullanın. Çıktı tek bir tıklamayla kopyalanmaya veya .b64.txt dosyası olarak indirmeye hazırdır.

Base64 Dosya Kodlama Kullanım Durumları

Ön Uç Geliştirici
Küçük simgeleri, yazı tiplerini veya SVG'leri doğrudan CSS veya HTML'de veri URI'leri olarak gömerek ek HTTP isteklerini ortadan kaldırın. 2 KB'lık bir simge Base64 olarak satır içi, 50-200 ms gecikme ekleyecek bir ağ gidiş dönüşünü tasarruf eder.
Arka Uç Mühendisi
Taşıma protokolü çok parçalı yüklemeleri desteklemediğinde JSON API payload'larına dosya eklerini ekleyin. REST veya GraphQL yanıtlarında dize alanları olarak göndermeden önce PDF'leri, raporları veya imzalı belgeleri kodlayın.
DevOps / Altyapı
İkili yapılandırma dosyalarını (TLS sertifikaları, SSH anahtarları, lisans dosyaları) ortam değişkenlerinde, Kubernetes Sırlarında veya Terraform tfvars'da Base64 dizelerine depolayın; burada ham ikili değerlere izin verilmez.
QA / Test Mühendisi
Yükleme uç noktalarını, e-posta eki işlemesini veya belge işleme ardışık düzenlerini doğrulayan otomatik testler için Base64 dosya sahne durumları oluşturun; sürüm kontrolünde ikili test dosyalarını yönetmeden.
Veri Mühendisi
İkili blobları (Parquet meta verileri, Protobuf şemaları, küçük ikili varlıklar) JSON tabanlı veri kataloglarında, yapılandırma depolarında veya göç komut dosyalarında depolanmak üzere Base64'e serileştirin.
Öğrenci / Öğrenen
Küçük dosyaları kodlayarak ve çıktıyı inceleyerek ikili dosyaların metne nasıl dönüştüğünü gözlemleyin. RFC 4648'de açıklanan %33 ek yükü doğrulamak için Base64 uzunluğunu orijinal dosya boyutuyla karşılaştırın.

Base64 Dosya Boyutu Ek Yükü

Base64 kodlaması veri boyutunu tam olarak üçte bir artırır. Her 3 giriş baytı 4 çıkış karakteri üretir (her biri 6 biti temsil eder). Giriş uzunluğu 3'ün katı olmadığında doldurma karakterleri (=) eklenir. Aşağıdaki tablo, orijinal dosya boyutu ile kodlanmış çıkış boyutu arasındaki ilişkiyi göstermektedir.

Dosya BoyutuHam BaytlarBase64 BaytlarıEk Yük
1 KB1,024 B1,368 B+33.3%
10 KB10,240 B13,656 B+33.4%
100 KB102,400 B136,536 B+33.3%
1 MB1,048,576 B1,398,104 B+33.3%
5 MB5,242,880 B6,990,508 B+33.3%
10 MB10,485,760 B13,981,016 B+33.3%

Veri URI'si ve MIME Türü Referansı

Bir veri URI'si, data:[MIME türü];base64,[kodlanmış veriler] biçimini kullanarak dosya içeriğini doğrudan HTML, CSS veya JavaScript'e gömer. MIME türü tarayıcıya çözülen baytları nasıl yorumlayacağını söyler. Aşağıda yaygın dosya uzantıları, MIME türleri ve karşılık gelen veri URI'si ön eki bulunmaktadır.

UzantıMIME TürüVeri URI Ön Eki
.pdfapplication/pdfdata:application/pdf;base64,...
.zipapplication/zipdata:application/zip;base64,...
.pngimage/pngdata:image/png;base64,...
.jpgimage/jpegdata:image/jpeg;base64,...
.gifimage/gifdata:image/gif;base64,...
.svgimage/svg+xmldata:image/svg+xml;base64,...
.woff2font/woff2data:font/woff2;base64,...
.mp3audio/mpegdata:audio/mpeg;base64,...
.wasmapplication/wasmdata:application/wasm;base64,...
.binapplication/octet-streamdata:application/octet-stream;base64,...

Kod Örnekleri

Bu çalıştırılabilir örnekler, JavaScript, Python, Node.js, bash ve Go'da bir ikili dosyayı nasıl okuyacağınız ve Base64'e kodlayacağınızı göstermektedir. Her kod parçacığı doldurma ile standart Base64 (RFC 4648 Bölüm 4) üretir.

JavaScript (browser)
// Read a file from an <input> element and encode to Base64
const input = document.querySelector('input[type="file"]')
input.addEventListener('change', (e) => {
  const file = e.target.files[0]
  const reader = new FileReader()
  reader.onload = () => {
    const base64 = reader.result.split(',')[1]
    console.log(base64) // → "JVBERi0xLjQK..." (raw Base64, no data URI prefix)
  }
  reader.readAsDataURL(file)
})

// Convert a Blob to Base64 with async/await
async function blobToBase64(blob) {
  const buffer = await blob.arrayBuffer()
  const bytes = new Uint8Array(buffer)
  let binary = ''
  bytes.forEach(b => binary += String.fromCharCode(b))
  return btoa(binary) // → standard Base64 string
}
Python
import base64
from pathlib import Path

# Encode a file to Base64
file_bytes = Path('document.pdf').read_bytes()
encoded = base64.b64encode(file_bytes).decode('ascii')
print(encoded[:40])  # → "JVBERi0xLjQKJeLjz9MKMSAwIG9iago8PA..."

# Write encoded output to a text file
Path('document.b64.txt').write_text(encoded)

# Build a data URI from a file
mime_type = 'application/pdf'
data_uri = f'data:{mime_type};base64,{encoded}'
print(data_uri[:60])  # → "data:application/pdf;base64,JVBERi0xLj..."
Node.js
import { readFileSync, writeFileSync } from 'fs'

// Encode a file to Base64
const buffer = readFileSync('archive.zip')
const base64 = buffer.toString('base64')
console.log(base64.length) // → 1398104 (for a ~1 MB file)

// Save Base64 output to a file
writeFileSync('archive.b64.txt', base64)

// Build a data URI
const mime = 'application/zip'
const dataUri = `data:${mime};base64,${base64}`
CLI (bash)
# Encode a file to Base64 (macOS / Linux)
base64 < document.pdf > document.b64.txt

# Encode with no line wrapping (GNU coreutils)
base64 -w 0 < document.pdf > document.b64.txt

# Encode and copy to clipboard (macOS)
base64 < image.png | pbcopy

# Encode with OpenSSL (available everywhere)
openssl base64 -in archive.zip -out archive.b64.txt

# Pipe directly into curl for API upload
base64 -w 0 < photo.jpg | curl -X POST -d @- https://api.example.com/upload
Go
package main

import (
	"encoding/base64"
	"fmt"
	"os"
)

func main() {
	data, err := os.ReadFile("document.pdf")
	if err != nil {
		panic(err)
	}
	encoded := base64.StdEncoding.EncodeToString(data)
	fmt.Println(len(encoded)) // → 1398104 (for a ~1 MB file)

	// Write to file
	os.WriteFile("document.b64.txt", []byte(encoded), 0644)
}

Sıkça Sorulan Sorular

Base64'e kodlayabileceğim maksimum dosya boyutu nedir?
Bu araç tamamen tarayıcınızda çalışır, bu nedenle sınır kullanılabilir belleğe bağlıdır. Modern tarayıcılar 50-100 MB'a kadar dosyaları sorunsuz şekilde işler. Daha büyük dosyalar için base64 (macOS/Linux) gibi bir komut satırı aracı veya dosyayı parçalar halinde işleyen ve tüm çıktıyı belleğe aynı anda yüklemeyen Python'un base64 modülünü kullanın.
Base64 çıkışı orijinal dosyaya kıyasla ne kadar büyüktür?
Base64 çıkışı her zaman girdiye göre yaklaşık %33,3 daha büyüktür. Daha spesifik olarak, formül ceil(n / 3) * 4'tür; burada n giriş baytlarının sayısıdır. 1 MB'lık bir dosya yaklaşık 1,33 MB Base64 metni üretir. Bu ek yük kodlamaya özgüdür ve azaltılamaz.
Bir dosyayı Base64'e kodlayıp veri URI'si olarak kullanabilir miyim?
Evet. Base64 dizesine MIME türü önekini ekleyin: data:application/pdf;base64, kodlanmış içeriği takip etmektedir. Tarayıcılar veri URI'sini normal bir dosya gibi çözecek ve işleyecektir. Veri URI'leri img src, bağlantı href, CSS url() ve bağlantı indir özniteliklerinde çalışır.
Base64 dosya kodlaması şifreleme ile aynı şey midir?
Hayır. Base64 bir kodlamadır, şifreleme değildir. İkili verileri önemsiz bir şekilde tersine çevrilebilir bir metin temsiline dönüştürür — Base64 çözücüsü olan herkes orijinal dosyayı geri alabilir. Base64 gizlilik, bütünlük veya kimlik doğrulaması sağlamaz. Dosya içeriğini korumanız gerekiyorsa, önce dosyayı şifreleyin (örneğin AES-256-GCM ile), ardından şifreli metni taşıma için Base64'e kodlayın.
Base64 dizilendirilme neden bir veya iki = karakteriyle bitmiştir?
= karakterleri dolgu kullanır. Base64 girişi 3 baytlık gruplar halinde işler ve grup başına 4 çıkış karakteri üretir. Dosya boyutu 3'ün katı olmadığında, çıkış uzunluğunun her zaman 4'ün katı olması için bir veya iki doldurma karakteri eklenir. Bir = son grubun 2 baytı olduğu anlamına gelir; iki == son grubun 1 baytı olduğu anlamına gelir.
Komut satırından bir dosyayı Base64'e nasıl kodlarım?
macOS ve Linux'ta base64 komutunu kullanın: base64 < file.pdf > file.b64.txt. GNU/Linux'ta satır kaydırmayı bastırmak için -w 0 ekleyin. OpenSSL'yi de kullanabilirsiniz: openssl base64 -in file.pdf -out file.b64.txt. Windows PowerShell'de: [Convert]::ToBase64String([IO.File]::ReadAllBytes('file.pdf')).
Base64 dosya kodlamayı multipart/form-data yerine ne zaman kullanmalıyım?
Taşıma yalnızca metin biçimi gerektirdiğinde Base64'ü kullanın — JSON API'leri, XML-RPC, ortam değişkenleri veya Kubernetes Sırları. HTML formları veya ikili akışları destekleyen REST uç noktaları aracılığıyla dosya yüklerken multipart/form-data kullanın. Multipart, %33 boyut ek yükünü önlediği için daha verimlidir, ancak sunucunun çok parçalı sınırları ayrıştırmasını gerektirir.