Base64
Codierung, welche auf einem 64er Zahlensystem basiertOptionen:
Alphabete:
ASCII-Zeichen bestehen aus 8-Bits. Base64 codiert 8-Bit-Zeichen zu 6-Bit-Zeichen, denn zum Beispiel das Email-Protokoll SMTP unterstützt in seiner ursprünglichen Fassung nur maximal 7-Bit-ASCII-Zeichen. Durch die Codierung steigt die ursprüngliche Datenmenge um 36%.
Zur Codierung werden nur die Zeichen A-Z, a-z, 0-9, + und / verwendet. Falls die Gesamtanzahl der Eingabebits nicht durch 24 teilbar ist, fügt Base64 Nullen als Füllbits ein. Komplette Füllbytes (8-Bits) werden dabei als = codiert. Sei der zu codierende Text „ABBA“. Nach der ASCII-Tabelle ergibt sich daraus diese Bitfolge:
01000001 01000010 01000010 01000001
Die Bitfolge wird nun in 6-Bit-Blöcke geteilt und am Ende mit Nullen aufgefüllt, bis die Anzahl der Bits durch 24 teilbar ist.
010000 010100 001001 000010 010000 010000 000000 000000
Es wurden 2 Füllbytes am Ende der Bitfolge eingefügt. Dadurch entstehen zwei Gleichheitszeichen am Ende des Codeworts. Die restlichen Bitfolgen werden entsprechend der Codetabelle übersetzt:
Base64 | Zeichen | Base64 | Zeichen | Base64 | Zeichen | Base64 | Zeichen |
000000 | A | 010000 | Q | 100000 | g | 110000 | w |
000001 | B | 010001 | R | 100001 | h | 110001 | x |
000010 | C | 010010 | S | 100010 | i | 110010 | y |
000011 | D | 010011 | T | 100011 | j | 110011 | z |
000100 | E | 010100 | U | 100100 | k | 110100 | 0 |
000101 | F | 010101 | V | 100101 | l | 110101 | 1 |
000110 | G | 010110 | W | 100110 | m | 110110 | 2 |
000111 | H | 010111 | X | 100111 | n | 110111 | 3 |
001000 | I | 011000 | Y | 101000 | o | 111000 | 4 |
001001 | J | 011001 | Z | 101001 | p | 111001 | 5 |
001010 | K | 011010 | a | 101010 | q | 111010 | 6 |
001011 | L | 011011 | b | 101011 | r | 111011 | 7 |
001100 | M | 011100 | c | 101100 | s | 111100 | 8 |
001101 | N | 011101 | d | 101101 | t | 111101 | 9 |
001110 | O | 011110 | e | 101110 | u | 111110 | + |
001111 | P | 011111 | f | 101111 | v | 111111 | / |
Als Ergebnis der Codierung ergibt sich: QUJCQQ==