Base64 Encode / Decode (Kodlama ve Çözme)

Base64, veriyi 3 baytlık gruplara ayırır ve her grubu 64 karakterlik alfabeden 4 karakterle yazar; eksik son grup = ile tamamlanır. "foobar" Zm9vYmFy, "f" Zg== olur. Türkçe metin önce UTF-8 baytlarına çevrilir; bu yüzden "Merhaba dünya" TWVyaGFiYSBkw7xueWE= eder.

Son güncelleme: · Yazılım ve bilişim hesaplamaları

Hesaplama formu

İşlemi ve alfabeyi seç, metni ya da Base64 dizesini yapıştır.

En fazla 2000 karakter. Çözmede satır sonları ve boşluklar yok sayılır.

Ne hesaplaman gerektiğinden emin değil misin? Hesap asistanına sor, uygun hesaplayıcıyı birlikte bulalım.

Sonucun burada görünecek

Soldaki formu doldurup Hesapla'ya bas; ana sonuç, dağılım ve adım adım hesap burada açılır.

Örnek: Base64 çıktısı TWVyaGFiYSBkw7xueWE= Örneği incele

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.

Örnek hesap adımları
AdımHesapDeğer
UTF-8metin UTF-8 baytlarına çevrilir14 bayt
Gruplamaher 3 bayt (24 bit) 6 bitlik 4 karaktere bölünür20 karakter
Base64 çıktısıTWVyaGFiYSBkw7xueWE=

Kaynaklar

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.