Impressum | Kontakt
 Startseite | Kurse Projekte | Haskell | Fortbildungen | Linux | Suche

Die Base64-Codierung

Bei E-Mail Anhängen findet man immer wieder mal eine merkwürdig  verschlüsselte Darstellung, die aus den Zeichen A..Z, a..z und 0..9 sowie den beiden Zeichen '+' und '/'. Am Textende können auch noch ein oder zwei Gleichheitszeichen stehen.

Dieser beschränkte Zeichensatz hat den Vorteil, dass er unabhängig von sprachspezifischen Zeichen ist. Damit kodierte Daten können auf diese Art weltweit einfach ausgetauscht werden, auch auf unterschiedlichen Plattformen.

Das Prinzip der Kodierung ist relativ einfach: Eine Nachricht, die im 8-Bit-Ascii-Code vorliegt, wird in einen fortlaufenden binären String umgewandelt. Da für die Base64-Kodierung 6 Bit für ein Zeichen genügen, zerhackt man diesen String in 6-Bit-Blöcke, die entsprechend einer definierten Tabelle in Zeichen umgewandelt werden.

 
Quelle: de.wikipedia.org/wiki/Bild:Base64.png

Das Verfahren geht gut, wenn die Textlänge ein Vielfaches von 3 ist. Dann ergeben jeweils drei Zeichen 24 Bit, die in vier 6-er Blöcke zerlegt werden können. Der Umfang eines Textes wächst also um den Faktor 1/3 . Andernfalls füllt man das Ende der binären Darstellung mit Nullen auf, bis die Textlänge ein Vielfaches von 3 · 8 = 24 ist. Entstehen dabei 6-er Blöcke, die nur aus Nullen bestehen, so werden diese durch das Zeichen '=' kodiert. Damit kann man bei der Dekodierung diese Füllzeichen wieder herausfiltern.

Übungsblatt mit Hinweisen zur Implementierung in Haskell