DocsME
6 Min. LesezeitDocsMe Team

Wie Base64-Kodierung Funktioniert

Sieh genau, wie Base64 Bytes in Text verwandelt — die Zuordnung von 3 Bytes zu 4 Zeichen, das Alphabet, das Padding und warum die Ausgabe etwa 33 % größer ist.

  • wie base64 kodierung funktioniert
  • base64 algorithmus
  • base64 padding
  • base64 alphabet
  • pdf me

Von Bytes zu Base64-Zeichen

Base64 verarbeitet die Originaldatei jeweils 3 Bytes — 24 Bit — auf einmal. Jede 24-Bit-Gruppe wird in vier 6-Bit-Blöcke aufgeteilt, und jeder 6-Bit-Block (eine Zahl von 0 bis 63) wird in einem festen Alphabet nachgeschlagen, um ein Ausgabezeichen zu erzeugen. Drei Bytes hinein, vier Zeichen heraus.

Deshalb besteht jeder Base64-String aus denselben 64 Symbolen, egal welche Art von Datei — ein PDF, ein Bild, eine Schrift — hineingegeben wurde. Siehe was Base64-Kodierung ist für das größere Bild.

Das Base64-Alphabet

Die 64 möglichen 6-Bit-Werte werden zugeordnet zu: den Großbuchstaben A–Z (Werte 0–25), den Kleinbuchstaben a–z (Werte 26–51), den Ziffern 0–9 (Werte 52–61) und schließlich + und / (Werte 62 und 63). Einige Varianten tauschen die letzten beiden Symbole aus — URL-sicheres Base64 verwendet stattdessen - und _, damit der String sicher in einer URL stehen kann.

Padding Mit =

Eine 24-Bit-Gruppe entsteht nur sauber, wenn die Eingabelänge ein Vielfaches von 3 Bytes ist. Wenn von der letzten Gruppe einer Datei nur noch 1 oder 2 Bytes übrig bleiben, füllt Base64 die fehlenden Bits mit Nullen auf und hängt ein oder zwei =-Zeichen an die Ausgabe an, damit Decoder genau wissen, wie viele der letzten Bits echte Daten waren.

Padding trägt keine Information aus der Datei — es markiert nur, wo der echte Inhalt endet, damit ein Decoder an der richtigen Stelle aufhört.

Ein Kleines Durchgerechnetes Beispiel

Das Kodieren der beiden Buchstaben "Hi" ergibt den String "SGk=". Die Bytes von H und i bilden 16 Bit, die sich in drei vollständige 6-Bit-Blöcke plus 2 übrige, mit Nullen aufgefüllte Bits aufteilen — drei echte Zeichen (S, G, k) gefolgt von einem =-Padding-Zeichen, weil die Eingabe 2 Bytes war, kein Vielfaches von 3.

Warum die Ausgabe Etwa 33 % Größer Ist

Drei Bytes Binärdaten werden immer zu vier Textzeichen, ein Verhältnis von 4:3 — etwa 33 % größer. Ein PDF mit 900 KB auf der Festplatte wird zu einem Base64-String von fast 1,2 MB. Das ist der wichtigste Kompromiss, den man einplanen sollte; siehe die Größenhinweise im PDF-zu-Base64-Leitfaden.