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.