Zum Hauptinhalt springen

3. Implementierungsunterschiede

Basis-Kodierungsimplementierungen unterscheiden sich hauptsächlich in fünf Aspekten: Zeilenumbrüche, Auffüllung, zeichenfremde Alphabete, Alphabetwahl und kanonische Kodierung.

3.1 Zeilenumbrüche in kodierten Daten​

Der Encoder DARF den kodierten Basisdaten keine Zeilenumbrüche hinzufügen, es sei denn, die auf dieses Dokument verweisende Spezifikation verlangt dies ausdrücklich. Die Zeilenlängenbegrenzungen von MIME und PEM sind Regeln dieser Formate selbst und keine allgemeinen Base64-Anforderungen.

3.2 Auffüllung kodierter Daten​

Der Encoder MUSS normalerweise das entsprechende Füllzeichen am Ende der kodierten Daten enthalten, sofern die auf dieses Dokument verweisende Spezifikation nicht ausdrücklich anders bestimmt.

3.3 Zeichen außerhalb des Alphabets​

Der Decoder MUSS kodierte Daten zurückweisen, die Zeichen außerhalb des gewählten Alphabets enthalten, sofern die auf dieses Dokument verweisende Spezifikation solche Zeichen nicht absichtlich zulässt (etwa durch das Ignorieren von Leerraumzeichen).

3.4 Wahl des Alphabets​

Verschiedene Umgebungen erfordern verschiedene Alphabete. Zeichen wie + und / sind in URLs und Dateinamen ungeeignet, weshalb RFC 4648 ein URL- und dateinamenssicheres Base64-Alphabet definiert.

3.5 Kanonische Kodierung​

Füllbits MÜSSEN Null sein. Andernfalls könnte dieselben Binärdaten mehrere Textdarstellungen haben, was den kanonischen Vergleich zerstören und Signaturen oder Hashes beeinträchtigen würde.