Base64 kodlama nasıl yapılır?
Metin önce UTF-8 baytlarına çevrilir. ASCII harfleri 1, ç ğ ı ö ş ü gibi Türkçe harfler 2 bayt tutar.
Baytlar üçer üçer alınır. Üç bayt 24 bittir ve 6 bitlik dört parçaya bölünür. Her parça 0-63 arası bir sayıdır ve alfabedeki karşılığıyla yazılır: A-Z, a-z, 0-9, + ve /.
Son grupta 1 bayt kalırsa 2 karakter ve ==, 2 bayt kalırsa 3 karakter ve = yazılır (RFC 4648 §4).
base64url (RFC 4648 §5) URL ve dosya adlarında sorun çıkarmasın diye + yerine -, / yerine _ kullanır ve JWT'de olduğu gibi genellikle dolgusuz yazılır.
Çözmede işlem tersine yapılır. Satır sonları ve boşluklar atılır, iki alfabe de kabul edilir. Çıkan baytlar UTF-8 metin değilse onaltılık olarak gösterilir.
Formül
- Çıktı uzunluğu (dolgulu)
4 × ⌈bayt ÷ 3⌉- Gruplama
3 bayt = 24 bit = 4 × 6 bit- Dolgusuz (base64url)
⌈4 × bayt ÷ 3⌉
Örnek hesap
Aşağıdaki örnek, şu değerlerle (İşlem: Kodla (encode), Alfabe: Standart Base64 (+ /, = dolgulu), Metin: Merhaba dünya) hesaplayıcının kendisiyle hesaplanmıştır.
| Adım | Hesap | Değer |
|---|---|---|
| UTF-8 | metin UTF-8 baytlarına çevrilir | 14 bayt |
| Gruplama | her 3 bayt (24 bit) 6 bitlik 4 karaktere bölünür | 20 karakter |
| Base64 çıktısı | TWVyaGFiYSBkw7xueWE= |
Kaynaklar
- IETF RFC 4648 — Base64 (§4) ve base64url (§5) kodlamaları (erişim 31.10.2026)
- IETF RFC 3629 — UTF-8 dönüşüm biçimi (erişim 31.10.2026)
Son güncelleme: (içerik ya da kullanılan verinin son değiştiği ya da kontrol edildiği tarih).
Hesaba katılmayanlar
- Dosya kodlamaz; yalnızca yazılan metni işler. Bir dosyanın Base64 boyutunu öğrenmek için Base64 boyut hesaplayıcısını kullan.
- Girdi en fazla 2000 karakterdir. İşlem tarayıcında yapılır, metin sunucuya gönderilmez.
- UTF-8 dışındaki karakter kodlamalarıyla (Latin-5, Windows-1254) metin kodlanmaz.
Sıkça sorulan sorular
Base64 bir şifreleme yöntemi mi?
Hayır. Base64 yalnızca ikili veriyi metin olarak taşımaya yarayan bir kodlamadır. Anahtar gerektirmez, herkes geri çözebilir; gizlilik sağlamaz.
Base64 sonundaki = işareti ne demek?
Dolgudur. Veri 3 baytın katı değilse son grup = ile 4 karaktere tamamlanır. 1 bayt artarsa ==, 2 bayt artarsa = eklenir.
JWT neden standart Base64'ten farklı görünüyor?
JWT, base64url kullanır: + yerine -, / yerine _ yazılır ve sondaki = dolguları atılır. Bu hesaplayıcı çözerken iki alfabeyi de kabul eder.
Türkçe karakterler neden farklı sonuç veriyor?
Base64 karakterleri değil baytları kodlar. ü, UTF-8'de C3 BC iki baytıdır. Başka bir sistem metni Latin-5 ile kodlamışsa aynı harf tek bayt olur ve Base64 çıktısı değişir.