urlsafe_b64encode endet immer mit '=':

8

Ich denke, das muss eine dumme Frage sein, aber warum enden die Ergebnisse von urlsafe_b64encode () immer mit einem '=' für mich? '=' ist nicht sicher?

%Vor%

Ausgabe:

%Vor%     
sparklewhiskers 15.01.2009, 18:27
quelle

3 Antworten

6

Base64 verwendet '=' zum Auffüllen. Ihre String-Bit-Länge ist nicht durch 24 teilbar, daher wird sie mit '=' aufgefüllt. Übrigens sollte "=" URL-sicher sein, da es oft für Parameter in URLs verwendet wird.

Siehe auch diese Diskussion .

    
schnaader 15.01.2009, 18:38
quelle
2

Das '=' dient zum Auffüllen. Wenn Sie die Ausgabe als Wert eines URL-Parameters übergeben möchten, müssen Sie diesen als erstes ausschließen, damit die Auffüllung beim späteren Einlesen des Werts nicht verloren geht.

%Vor%

Python folgt nur RFC3548, indem es das '=' für das Auffüllen zulässt, obwohl es scheint, dass ein geeigneteres Zeichen es ersetzen sollte.

    
Mike Griffith 15.01.2009 18:58
quelle
1

Ich würde erwarten, dass ein URI-Parser ein "=" im Wertenteil eines Parameters ignoriert.

Die URI-Parameter lauten: "& amp;" , [Name], "=", [Wert], nächstes, also ist ein Gleichheitszeichen im Wertteil harmlos. Ein unescaped Ampersand hat mehr Potenzial, den Parser zu brechen.

    
Tomalak 15.01.2009 19:01
quelle

Tags und Links