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:
- Codieren Sie die Eingabe-Oktettsequenz mit einem standardmäßigen base64-Encoder
- Ersetzen Sie alle '+'-Zeichen durch '-' im Ergebnis
- Ersetzen Sie alle '/'-Zeichen durch '_' im Ergebnis
- Entfernen Sie alle abschließenden '='-Zeichen
Um einen base64url-codierten String zu decodieren:
- Fügen Sie bei Bedarf '='-Zeichen hinzu, sodass die Länge des Strings ein Vielfaches von 4 ist
- Ersetzen Sie alle '-'-Zeichen durch '+'
- Ersetzen Sie alle '_'-Zeichen durch '/'
- 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.