Die YouTube-URL kann nicht erneut in base64 konvertiert werden

722
Ben Druno

Als ich versuchte, die YouTube-URL erneut in base64 zu kodieren, wurde der Wert nach = außer den ersten beiden Buchstaben nicht geändert. Ist das schon in base64? URL konvertiert: http://www.youtube.com/watch?v=CvUN8qg9lsk

Ausgabe (b64): http% 3A% 2F% 2Fwww.youtube.com% 2Fwatch% 3Fv% 3DCvUN8qg9lsk

Warum sind sie gleich?

0
Bitte schau genauer hin. Die ersten beiden Buchstaben haben sich ebenfalls nicht geändert. Es änderte sich nur = in% 3D und? bis% 3F LPChip vor 6 Jahren 1
Was bedeutet, dass die URL bereits in b64 codiert ist? Aber ich kann das nicht zur normalen Form entschlüsseln; Warum? Ben Druno vor 6 Jahren 0
Nein, dies bedeutet, dass base64 nur die Sonderzeichen codiert: `: /? =`, Die in der URL vorhanden sind, nicht die alphanumerischen Zeichen und das `.`. Es scheint, dass der base64-Encoder tatsächlich ein URL-Encoder ist. Da Sie nicht wirklich erwähnt haben, welche Art von Kodierung Sie verwenden und wo Sie sie verwenden, wird die Beantwortung dieser Frage auf andere Fragen, die ich gemacht habe, schwer bis nahezu unmöglich sein. LPChip vor 6 Jahren 0
Ja, es ist URL-Kodierung. Base64 enthält auch andere Codierungen, uft, Iso, alles kommt unter base64-Codierung, oder? Ben Druno vor 6 Jahren 0
Für die URL-Kodierung funktioniert es genau so, wie es entworfen wurde. Vergewissern Sie sich, dass der neue String nur das codiert, was unbedingt erforderlich ist. LPChip vor 6 Jahren 0

1 Antwort auf die Frage

0
Anaksunaman

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 CvUN8qg9lskbereits 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 base64Ihnen 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.

Das ist klar. Aber ich habe gehört, dass b64 gemacht wird, weil das Netzwerkmedium 2 ^ 7 Bits nicht übertragen kann, so dass die Binärdatei tatsächlich in 4 Bits mit 4 Sätzen aufgeteilt wurde. 2 ^ 6 = 64. Es könnte also über unser Netzwerk übertragen werden. Ist das eine wirkliche Tatsache? Ben Druno vor 6 Jahren 0
Mehr oder weniger. Vor Jahren waren 2 ^ 7 Bits pro Zeichen (normales ASCII, 128 Gesamtwerte) ein Standard für die Datenübertragung, während die meisten Computer mit 2 ^ 8 Bit (256 Werten) arbeiten. Somit gibt es Werte außerhalb der Darstellungsfähigkeit von 128 Bit. Dies ist (vor allem) der Grund, warum die Daten aufgeteilt werden, obwohl Base64 auch dazu beiträgt, die Zeilencodierung zwischen verschiedenen Betriebssystemen zu erhalten, und andere Vorteile haben kann. Anaksunaman vor 6 Jahren 0
Als ich den Quellcode von Google Mail sah, konnte ich feststellen, dass alles in Google Mail-Website, insbesondere das Zeichensymbol und alle einzelnen Symbole, die zum Erstellen der Google Mail-Website verwendet werden, in B64 codiert ist. Meine Frage ist, warum sie Icons und sogar Logos in B64 kodieren. Sie haben einen eigenen Hosting-Server. Warum können sie diese Symbole nicht einfach dort hochladen und diese Links beim Erstellen der Website anwenden? Ich hoffe, dass sie die b64-Codierung verwenden, um das Bild ohne Probleme anzuzeigen. Aber warum können sie diesen Link nicht hochladen? Ben Druno vor 6 Jahren 0
Inline-Bilder (möglicherweise) erhöhen die Seitengeschwindigkeit (zumindest wenn die Bilder klein sind, wie z. B. Symbole). Sie verhindern jede separate, externe Anforderung eines Bildes (auch von Google-Diensten), was zu Verzögerungen führen kann. Als Nebeneffekte für Google kann ich davon ausgehen, * dass * die Zuverlässigkeit in gewissem Maße erhöht und die Größe der Infrastruktur verringert werden kann, die sie aufrecht erhalten müssen. Aber das ist eine Vermutung. Anaksunaman vor 6 Jahren 0
Es reduziert auch den unberechtigten Zugriff für einige Fälle. Ben Druno vor 6 Jahren 0