Bei dem Versuch, eine YouTube-URL erneut in base64 zu codieren, hat sich der Wert nach dem
=
Zeichen nicht geändert, mit Ausnahme der ersten beiden Buchstaben. Ist der letzte Teil bereits in base64?
Das =
Zeichen, in das übersetzt wird %3D
, ist ja CvUN8qg9lsk
bereits in Base64 codiert.
Warum sind sie gleich?
Wie @LPChip weist darauf hin, ist die Funktion, die Sie verwenden ein URL - Encoder, die nur Sonderzeichen in der URL zu übersetzen ( :
, /
, ?
, +
und =
) in ihre hexadezimale Äquivalente (nicht normale Buchstaben).
Base64 enthält auch andere Kodierungen, oder?
Während die URL-Codierung als eine Form der Base64-Codierung betrachtet wird, ist es zu beachten, dass dieser Begriff möglicherweise überlastet ist. Per Wikipedia (Hervorhebung hinzugefügt):
"Base64 ist eine Gruppe ähnlicher Binär-zu-Text-Codierschemata, die binäre Daten in einem ASCII-Zeichenfolgenformat darstellen, indem sie in eine Radix-64-Darstellung übersetzt werden."
Kurz gesagt, die von base64
Ihnen verwendete Funktion ist nicht zum Kodieren / Dekodieren gedacht CvUN8qg9lsk
.
Als kleine Randnotiz: Wenn Sie ein =
(Padding) hinzufügen und versuchen, z. B. CvUN8qg9lsk=
mit einem "normalen" Base64-Encoder / Decoder zu übersetzen, kann dies funktionieren. Das heißt, es ist unwahrscheinlich, dass Sie etwas Wertvolles bekommen (dh für Menschen sinnvoll). Es ist sehr wahrscheinlich, dass die Werte, die YouTube verwendet, um seine IDs zu erhalten, das Ergebnis eines sehr spezifischen Algorithmus sind, der wahrscheinlich keinen Bezug zu etwas außerhalb von Google / YouTube hat.