Base64 baytların sınırlı bir metin alfabesi kullanılarak temsilidir. Bir aktarımın metni kabul etmesi ancak yükün ikili olması durumunda kullanışlıdır. İşlem tersine çevrilebilir: Doğru bir kod çözücü, sıfırlar ve geçerli karakterler olmayan değerler de dahil olmak üzere orijinal baytları kurtarır. Bu baytların nasıl yorumlanacağını seçmek ayrı bir adımdır.
Üç bayt dört karaktere dönüşür
Bir bayt sekiz bit içerir. Üç bayt, altılı dört gruba eşit olarak bölünen 24 bit sağlar. Her grup 64 alfabe karakterinden birini seçer. Standart alfabede büyük harfler, küçük harfler, rakamlar, artı ve eğik çizgi bulunur. ASCII metni için Manbaytlar 4d 61 6e onaltılı olarak ve kodlanmış çıktı TWFu.
Input bytes: 01001101 01100001 01101110
Six-bit sets: 010011 010110 000101 101110
Indexes: 19 22 5 46
Output: T W F u
Dolgu son grubu tanımlar
Bir bayt kaldığında çıktıda iki alfabe karakteri ve iki eşittir işareti bulunur. Kalan iki bayt, üç alfabe karakteri ve bir eşittir işareti üretir. Böylece M olur TQ==, bu arada Ma olur TWE=. Dolgu, kodlamanın yapısal bir parçasıdır; rastgele eşittir işaretleri eklemek eksik bir veri karakterini geri getirmez. Kanonik kodlamada, son alfabe karakterinin kullanılmayan bitleri de sıfır olmalıdır.
için n giriş baytı için dolgulu çıktı uzunluğu 4 × ceil(n / 3) karakterdir. Bu nedenle 1.024 baytlık bir dosya, Data URI öneki veya satır sonları eklenmeden önce 1.368 karakter üretir. Base64 sıkıştırma yapmaz; ancak ayrı bir aktarım sıkıştırma katmanı son aktarım boyutunu azaltabilir.
Yorumlamadan önce doğrulama
Bir üreticiyi tanımlanmış bir protokole göre test ederken katı modu kullanın. Bilinen bir kaynak ASCII satır sonları eklediğinde, dolguyu atladığında veya Veri URI sarmalayıcısı eklediğinde uyumluluk modunu kullanın. Kaydedilen ayarlamaları gözden geçirin. Beklenmedik noktalama işaretleri, karışık alfabeler ve sıfırdan farklı kullanılmayan bitler sessizce silinmeyi değil, araştırılmayı hak ediyor.
Son olarak, kodu çözülmüş baytları inceleyin. Geçerli Base64, geçersiz bir UTF-8 dizisi, kesilmiş bir görüntü veya eksik bir PDF içerebilir. Başarılı bir kod çözme yalnızca kodlama katmanını kanıtlar. İkili sonuçları bayt olarak kaydedin ve yapılarını kontrol etmek için uygun dosya ayrıştırıcıyı kullanın. Alfabe, dolgu ve kanonik bit kuralları şurada belirtilmiştir: RFC 4648.