Zum Hauptinhalt springen

Appendix C. Notes on Implementing base64url Encoding without Padding (Hinweise zur Implementierung der base64url-Codierung ohne Padding)

Dieser Anhang beschreibt, wie man die base64url-Codierung ohne Verwendung von Padding implementiert, wie es in dieser Spezifikation erforderlich ist.

Die base64url-Codierung ist eine Variante der base64-Codierung, die in Abschnitt 5 von RFC 4648 [RFC4648] definiert ist und einen für URLs und Dateinamen sicheren Zeichensatz verwendet. Die einzigen Unterschiede sind:

  • Verwendung von '-' anstelle von '+'
  • Verwendung von '_' anstelle von '/'
  • Weglassen von Padding-Zeichen '='

Um base64url-Codierung ohne Padding zu implementieren:

  1. Codieren Sie die Eingabe-Oktettsequenz mit einem standardmäßigen base64-Encoder
  2. Ersetzen Sie alle '+'-Zeichen durch '-' im Ergebnis
  3. Ersetzen Sie alle '/'-Zeichen durch '_' im Ergebnis
  4. Entfernen Sie alle abschließenden '='-Zeichen

Um einen base64url-codierten String zu decodieren:

  1. Fügen Sie bei Bedarf '='-Zeichen hinzu, sodass die Länge des Strings ein Vielfaches von 4 ist
  2. Ersetzen Sie alle '-'-Zeichen durch '+'
  3. Ersetzen Sie alle '_'-Zeichen durch '/'
  4. Decodieren Sie das Ergebnis mit einem standardmäßigen base64-Decoder

Padding-Berechnung:

Wenn Eingabelänge mod 4 == 0, ist kein Padding erforderlich. Wenn Eingabelänge mod 4 == 2, fügen Sie zwei '='-Zeichen hinzu. Wenn Eingabelänge mod 4 == 3, fügen Sie ein '='-Zeichen hinzu. Wenn Eingabelänge mod 4 == 1, ist die Eingabe fehlerhaft.