4. Base 64 Kodierung
Die folgende Beschreibung von Base 64 stammt aus [3], [4], [5] und [6]. Diese Kodierung kann als „base64" bezeichnet werden.
Die Base-64-Kodierung wurde entwickelt, um beliebige Oktetsequenzen in einer Form darzustellen, die die Verwendung von Groß- und Kleinbuchstaben ermöglicht, aber nicht unbedingt für Menschen lesbar sein muss.
Es wird eine Teilmenge von 65 Zeichen aus US-ASCII verwendet, wodurch 6 Bits pro druckbarem Zeichen dargestellt werden können. (Das zusätzliche 65. Zeichen „=" wird verwendet, um eine spezielle Verarbeitungsfunktion zu kennzeichnen.)
Der Kodierungsprozess stellt 24-Bit-Gruppen von Eingabebits als Ausgabezeichenfolgen mit 4 kodierten Zeichen dar. Von links nach rechts fortschreitend wird eine 24-Bit-Eingabegruppe durch Verketten von 3 8-Bit-Eingabegruppen gebildet. Diese 24 Bits werden dann als 4 verkettete 6-Bit-Gruppen behandelt, von denen jede in ein einzelnes Zeichen im Base-64-Alphabet übersetzt wird.
Jede 6-Bit-Gruppe wird als Index in ein Array von 64 druckbaren Zeichen verwendet. Das durch den Index referenzierte Zeichen wird in die Ausgabezeichenfolge eingefügt.
Tabelle 1: Das Base-64-Alphabet
Wert Kodierung Wert Kodierung Wert Kodierung Wert Kodierung
0 A 17 R 34 i 51 z
1 B 18 S 35 j 52 0
2 C 19 T 36 k 53 1
3 D 20 U 37 l 54 2
4 E 21 V 38 m 55 3
5 F 22 W 39 n 56 4
6 G 23 X 40 o 57 5
7 H 24 Y 41 p 58 6
8 I 25 Z 42 q 59 7
9 J 26 a 43 r 60 8
10 K 27 b 44 s 61 9
11 L 28 c 45 t 62 +
12 M 29 d 46 u 63 /
13 N 30 e 47 v
14 O 31 f 48 w (pad) =
15 P 32 g 49 x
16 Q 33 h 50 y
Eine spezielle Verarbeitung wird durchgeführt, wenn am Ende der zu kodierenden Daten weniger als 24 Bits verfügbar sind. Ein vollständiges Kodierungsquantum wird immer am Ende einer Menge abgeschlossen. Wenn in einer Eingabegruppe weniger als 24 Eingabebits verfügbar sind, werden Bits mit dem Wert Null (rechts) hinzugefügt, um eine ganzzahlige Anzahl von 6-Bit-Gruppen zu bilden. Das Auffüllen am Ende der Daten wird mit dem Zeichen '=' durchgeführt. Da alle Base-64-Eingaben eine ganzzahlige Anzahl von Oktetten sind, können nur die folgenden Fälle auftreten:
(1) Das endgültige Quantum der Kodierungseingabe ist ein ganzzahliges Vielfaches von 24 Bits; hier ist die endgültige Einheit der kodierten Ausgabe ein ganzzahliges Vielfaches von 4 Zeichen ohne „="-Auffüllung.
(2) Das endgültige Quantum der Kodierungseingabe beträgt genau 8 Bits; hier besteht die endgültige Einheit der kodierten Ausgabe aus zwei Zeichen gefolgt von zwei „="-Auffüllzeichen.
(3) Das endgültige Quantum der Kodierungseingabe beträgt genau 16 Bits; hier besteht die endgültige Einheit der kodierten Ausgabe aus drei Zeichen gefolgt von einem „="-Auffüllzeichen.