Q Endet eine base64-Zeichenkette immer mit =
?
A: Nein. (das Wort usb
ist base64-kodiert in dXNi
)
F Warum ist ein =
am Ende angehängt werden?
A: Als kurze Antwort:
Das letzte Zeichen ( =
Zeichen) wird nur als Ergänzung (Padding) im abschließenden Prozess der Kodierung einer Nachricht mit einem Spezial Anzahl der Zeichen.
Sie haben keine =
Zeichen, wenn Ihre Zeichenkette ein Vielfaches von 3 Zeichen hat, denn Base64
Kodierung nimmt jede drei Bytes (ein Zeichen=1 Byte) und stellt sie als vier druckbare Zeichen im ASCII-Standard.
Beispiel :
(a) Wenn Sie Folgendes kodieren möchten
ABCDEFG <=> [ ABC
] [ DEF
] [ G
]
Base64
befasst sich mit dem ersten Block (der 4 Zeichen erzeugt) und dem zweiten (da sie vollständig sind). Für den dritten Block wird jedoch ein doppeltes ==
in der Ausgabe, um die 4 benötigten Zeichen zu vervollständigen. Das Ergebnis wird also sein QUJD REVG Rw== (ohne Leerzeichen).
[ ABC
] => QUJD
[ DEF
] => REVG
[ G
] => Rw==
(b) Wenn Sie Folgendes kodieren möchten ABCDEFGH <=> [ ABC
] [ DEF
] [ GH
]
In ähnlicher Weise wird sie eine =
am Ende der Ausgabe, um 4 Zeichen zu erhalten.
Das Ergebnis wird sein QUJD REVG R0g= (ohne Leerzeichen).
[ ABC
] => QUJD
[ DEF
] => REVG
[ GH
] => R0g=