GlobalKit

Base64 Kodlama ve Çözme

Metni Base64'e kodlayın ya da geri çözün. Metin UTF-8 olarak dönüştürülür, bu yüzden ş, ğ ve emoji sorunsuz çalışır. URL güvenli alfabe, dolgu ve satır sonu seçilebilir.

En fazla 500.000 karakter. Hiçbir şey cihazınızdan çıkmaz.

+ ve / yerine - ve _ kullanır (RFC 4648 bölüm 5); sonuç URL'de ya da dosya adında durabilir.

Sonucu 4 karakterin katına tamamlamak için sonuna = ekler.

Çıktıyı her 64 karakterde (PEM biçimi) ya da her 76 karakterde (MIME biçimi) bir satır başı ile böler.

0 bayt, 0 karaktere kodlandı.

Base64 bir kodlamadır, şifreleme değildir. Herkes çözebilir; bu yüzden gizli bilgileri korumak için kullanmayın.

Nasıl çalışır

Base64 baytları metne çevirir. Üç bayt (24 bit) 6 bitlik dört gruba bölünür ve her grup 64 karakterlik bir alfabeden bir karakterle yazılır: A–Z, a–z, 0–9, + ve / (RFC 4648 bölüm 4). 3 bayt her zaman 4 karakter olduğundan çıktı girdiden yaklaşık üçte bir büyüktür.

Girdi 3'ün katıyla bitmezse son grup kısa kalır. Artan bir bayt 2 karakter ve ==, artan iki bayt 3 karakter ve = üretir (bölüm 3.2). = işaretleri uzunluğu 4'ün katına tamamlayan dolgudur; veri taşımazlar, silebilirsiniz ve buradaki çözücü sonucu yine kabul eder.

Metin önce bayta çevrilir. Araç metninizi UTF-8 olarak kodlar, sonra bu baytları kodlar. Bu, btoa(metin) ile aynı şey değildir: btoa, U+00FF üstündeki karakterde hata fırlatır, U+0080 ile U+00FF arasında ise UTF-8 yerine Latin-1 kodlar; diğer araçlar bunu başka çözer. Tek başına duran bir vekil (surrogate) karakter UTF-8 ile yazılamaz; U+FFFD ile değiştirilir ve geri dönüşte aynı çıkmaz.

URL güvenli alfabe. RFC'nin 5. bölümü + ve / yerine - ve _ koyar. Aynı 6 bitlik değerler, farklı yazım.

Satır sonu. Satır başına 64 karakter PEM biçimidir (RFC 7468), 76 MIME biçimidir (RFC 2045 bölüm 6.8). Araç yalnızca LF kullanır ve çıktıyı satır sonuyla bitirmez.

Çözme bilerek hoşgörülüdür

Yapıştırılan veri dağınık olur; çözücü her yerdeki boşluk, sekme ve satır sonlarını yok sayar, iki alfabeyi de kabul eder ve eksik dolguyu tolere eder. Dolgu varsa doğru olmalıdır: = yalnızca sonda, en fazla iki tane ve toplam uzunluk 4'ün katı. Başka her karakter hatadır; veri uzunluğunun 4'e bölümünden kalan 1 ise yine hatadır. Sıfır olmayan kullanılmayan son bitler kabul edilir ve yok sayılır.

Çözülen baytlar sonra UTF-8 olarak okunur. Geçerli UTF-8 değillerse siz seçersiniz: bozuk baytları U+FFFD ile değiştirip uyarı göstermek ya da hata göstermek. Baştaki bayt sırası işareti (BOM) silinmez, U+FEFF olarak kalır.

Örnekler

MetinBase64Not
fZg==RFC 4648 test vektörü, 1 bayt, iki = işareti
foZm8=2 bayt, bir =
fooZm9v3 bayt, dolgu yok
foobarZm9vYmFy6 bayt 8 karakter olur
şxZ8=UTF-8 baytları C5 9F; btoa("ş") hata verir
ğxJ8=UTF-8 baytları C4 9F
üw7w=UTF-8 baytları C3 BC; Latin-1'deki tek bayt değil, iki bayt
??>Pz8+Standart alfabe
??>Pz8-URL güvenli alfabe
???Pz8/ ve Pz8_Standart ve URL güvenli
f, fo (dolgusuz)Zg ve Zm8Dolgu kapalı

Boyutlar. "şğ" ve ardından 🎉 emojisi 2 + 2 + 4 = 8 UTF-8 baytıdır; yani ceil(8 / 3) × 4 = 12 karaktere kodlanır. 100 tane a harfi 100 bayttır ve dolguyla 136 karakter eder; 76'da bölünce 76 ve 60 karakterlik satırlar, 64'te bölünce 64, 64 ve 8 karakterlik satırlar çıkar. foobanın 5 baytı dolgusuz 7 karakter tutar.

Hatalar ve kayıplı çözme. Zg=, Zg===, Zm9v! ve Z reddedilir. //5B girdisi FF FE 41 baytlarıdır ve geçerli UTF-8 değildir: değiştirme seçiliyken iki U+FFFD karakteri ve ardından A elde edersiniz, uyarı çıkar ve bayt sayısı 3 görünür. Hata seçeneğinde ise hata görürsünüz.

Dikkat edilecekler

Sık sorulan sorular

Son güncelleme: 11.10.2026

İlgili araçlar