base64 auf dem Papier – Kodierung

[[ Base64 | Base64 ]] ist ein Verfahren zur Kodierung von 8-Bit Zeichen, wie sie im ASCII vorkommen, zu einem 6-Bit Zeichen. Dies wird beispielsweise häufig für Mails verwendet, um Anhänge oder Texte Plattform- und Zeichensatzunabhängig zu versenden.

In diesem Beitrag geht es um das manuelle Umrechnen von 8-Bit-ASCII zu 6-Bit Zeichen. Als Beispiel-wort nehme ich hier mal: „Lorem“.

ASCII zu Bit

Zuallererst müssen alle ASCII-Zeichen vom Dezimalsystem ins Dualsystem umgerechnet werden. Da „A“ im ASCII 65, und Z wird als 90 repräsentiert. Ein kleines „a“ liegt bei 97, und ein „z“ bei 122.

„L“ wird mit der 76 repräsentiert, „e“ mit 101, „o“ mit 111, „r“ mit 114 und „m“ mit 109.
Jetzt werden zuerst die Zahlen ins Dualsystem konvertiert:

Buchstabe ASCII-Zahl Binär
L 76 1001100
o 111 1101111
r 114 1110010
e 101 1100101
m 109 1101101

Bits zu base64

Da base64 auf 6-Bits, statt 8 Bits basiert, müssen die Bits nun in 6-er Blöcke unterteilt werden. Jeder Block repräsentiert dann ein Zeichen, das zwischen 0 und 64 liegt(2⁶=64). Dabei sind die großen Buchstaben zwischen 0 und 25, die kleinen zwischen 26 und 51, sowie die Zahlen zwischen 52 und 61, worauf nur noch die Zeichen: 62=“+“, 63=“/“ und das = als „nichts“ folgen.

Um dies jetzt zu base64 zu kodieren, müssen jetzt alle Bits aneinander gestellt werden:

… und unterteilen sie in 6-er Blöcke:

Wie wir sehen, passt das nicht zusammen. Base64 nutzt dafür dass „nichts“ repräsentierende „=“(in Bits: „00000000“ oder auch 0) Zeichen, um die Anzahl der Bits aufzufüllen. Daraus resultiert also:

Das ganze umgerechnet zu Bas64 ergibt folgende Zeichenkette: „TG9yZW0=“
… eine passende Dekodierungsmethode folgt bald! 🙂

Grüße.

Kommentar verfassen