Warum fügt base64_encode () im Ergebnis einen Schrägstrich "/" hinzu?
Ich bin-Codierung die URL-suffix von meiner Bewerbung:
$url = 'subjects?_d=1';
echo base64_encode($url);
//Outputs
c3ViamVjdHM/X2Q9MQ==
Beachten Sie den Schrägstrich vor 'X2'.
Warum ist das passiert? Ich dachte base64 nur ausgegeben, A-Z, 0-9 und '=' als Polsterung? Ich habe versucht über einen online base64-encoder, um zu überprüfen, und es scheint, base64 macht immer das. Ich kann nicht sagen, ob Sie den Unterstrich "_" oder das Fragezeichen "?" oder "=" vielleicht?
InformationsquelleAutor der Frage BadHorsie | 2012-07-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nicht. Das Base64-alphabet enthält A-Z, A-z, 0-9 und
+
und/
.Können Sie ersetzen Sie Sie, wenn Sie kümmern sich nicht um die übertragbarkeit auf andere Anwendungen.
Finden Sie unter: http://en.wikipedia.org/wiki/Base64#Variants_summary_table
Können Sie etwas wie diese verwenden Ihre eigenen Symbole verwenden (ersetzen
-
und_
durch alles, was Sie wollen, solange es nicht in die base64-base-alphabet, natürlich!).Im folgenden Beispiel wird die normale base64 zu base64url spezifiziert in RFC 4648:
InformationsquelleAutor der Antwort Artefact2
Sorry, falsch gedacht. A-Za-z0-9 bekommt man nur 62 Zeichen. Base64 verwendet zwei zusätzliche Zeichen, in PHP den Fall
/
und+
.InformationsquelleAutor der Antwort deceze
Es ist nichts besonderes.
Den base-64 - "alphabet" oder "Ziffern" sind A-Z,a-z,0-9 sowie zwei zusätzliche Zeichen " + " (plus) /(Schrägstrich).
Können Sie später verschlüsseln /mit "%2f", wenn Sie wollen.
InformationsquelleAutor der Antwort Igor Chubin
A-Z 26 Zeichen.
0-9 10 Zeichen.
= ist ein Zeichen. Das gibt ein total von 37 Zeichen, die irgendwie kurz der 64.
/
ist eines der 64 Zeichen. Sie können sehen, eine vollständige Liste auf die wikipedia-Seite.InformationsquelleAutor der Antwort Quentin
Zusätzlich zu all den oben genannten Antworten, wies darauf hin, dass /ist Teil des erwarteten base64-alphabet, es sollte angemerkt werden, dass die besonderen Grund, Sie sahen /in der kodierten Zeichenfolge ist, denn wenn die base64-Codierung (ASCII-text, der einzige Weg, um erzeugen eine /ein Fragezeichen in einer position, die durch drei teilbar.
InformationsquelleAutor der Antwort Snorbuckle
Nicht direkt verwandt, und genug Leute haben oben beantwortet und erläutert Lösungen ganz gut.
Aber ein bisschen außerhalb des Anwendungsbereichs der Dinge. Wenn Sie möchten, lesbar Basis-text, versuchen Sie suchen in Base58. Es ist eine überlegung Wert, wenn Sie nur alphanumerische Zeichen.
InformationsquelleAutor der Antwort tfont
Base64 der gültigen Zeichensatz ist:
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/
dem = wird als Füllstoff verwendet für die letzten bytes
M.
InformationsquelleAutor der Antwort poussma