Çalışma Şekli
Kodlama sırasında 3 baytlık veriler 6 bitlik dörtlü gruplara dağıtılırlar. Her bir 6 bitlik grup 0 ile 63 arasında bir sayı oluşturur (26=64). Aşağıdaki eşleşmeye göre her sayı bir ASCII yazdırma karakterine dönüştürülür:{| class="wikitable"
|- }
! Sayı
! Karakter
|rowspan=17 style="width:1px;background-color:#000000;padding:0px;"|
! Sayı
! Karakter
|rowspan=17 style="width:1px;background-color:#000000;padding:0px;"|
! Sayı
! Karakter
|rowspan=17 style="width:1px;background-color:#000000;padding:0px;"|
! Sayı
! Karakter
|-
| 0 || A || 16 || Q || 32 || g || 48 || w
|-
| 1 || B || 17 || R || 33 || h || 49 || x
|-
| 2 || C || 18 || S || 34 || i || 50 || y
|-
| 3 || D || 19 || T || 35 || j || 51 || z
|-
| 4 || E || 20 || U || 36 || k || 52 || 0
|-
| 5 || F || 21 || V || 37 || l || 53 || 1
|-
| 6 || G || 22 || W || 38 || m || 54 || 2
|-
| 7 || H || 23 || X || 39 || n || 55 || 3
|-
| 8 || I || 24 || Y || 40 || o || 56 || 4
|-
| 9 || J || 25 || Z || 41 || p || 57 || 5
|-
|10 || K || 26 || a || 42 || q || 58 || 6
|-
|11 || L || 27 || b || 43 || r || 59 || 7
|-
|12 || M || 28 || c || 44 || s || 60 || 8
|-
|13 || N || 29 || d || 45 || t || 61 || 9
|-
|14 || O || 30 || e || 46 || u || 62 || +
|-
|15 || P || 31 || f || 47 || v || 63 || /
|}
Bir base64 kodlamasının uzunluğu daimi olarak 4` ün katları şeklindedir, uzunluğu 4` ün katı olmayan hiç bir metin geçerli bir base64 metin değildir. base64 kodlaması bitmiş bir verinin uzunluğu 4`ün katı değilse, gerektiği kadar `=` karakteri çıktının sonuna eklenir, örneğin uzunluğu 10 olan bir çıktının sonuna `==` eklenmelidir.
Daha ayrıntılı bilgi için: RFC 1421 ve RFC 2045.
Kullanımı
Base64 kodlaması en sık MIME (``Multipurpose Internet Mail Extensions``) standardı uygulamalarında yani elektronik postaya ikili dosya (İngilizce: ``binary file``) eklenmesi işleminde kullanılır. Kodlanmış dosya orjinal haline göre ortalama 33% oranında büyür.Örnek
Orjinal: VikipediBase64: VmlraXBlZGk=
Örnekteki her bir karakter bir bayt büyüklüğündedir.
Ayrıca Gözat
Linkler
- RFC 1421
- RFC 2045
- RFC 3548