Welche Textcodierungsschema verwenden Sie, wenn Sie binäre Daten haben, dass Sie einen ascii Kanal senden über müssen?

StackOverflow https://stackoverflow.com/questions/2090009

  •  21-09-2019
  •  | 
  •  

Frage

Wenn Sie Binärdaten haben, dass Sie zu kodieren müssen, was für Codierungsschema verwenden Sie?

Ich weiß über:

  • Hex-Codierung . Sehr einfach, aber sehr ausführlich, erweitert einen Byte auf zwei.
  • Base 64 . Die häufigsten, nicht so ausführlich, erweitert drei Bytes auf vier.
  • Basis 85 . Nicht üblich, weniger ausführlich wieder, erweitert vier Bytes auf fünf.

Gibt es andere Codierschemata gebräuchliche? Wenn ja, was gibt es Vor- und Nachteile?

Bearbeiten : Dies ist zum Beispiel nützlich, wenn sie in einem Cookie beliebige Daten zu speichern versuchen. Cookies können nur Text speichern, nicht beliebige Daten, so dass Sie es in irgendeiner Weise zu konvertieren, vorzugsweise mit einem Weg, um es zurück zu konvertieren. Ferner wird angenommen, dass Sie einen stateless-Server verwenden, so dass Sie nicht auf dem Server speichern den Zustand und nur eine Kennung in die Cookie setzen. Natürlich, wenn Sie dies tun, würden Sie müssen auch eine gewisse Art und Weise der Überprüfung, ob, was der Benutzer zurück zu Ihnen vorbei ist, was Sie an den Benutzer übergeben, zum Beispiel eine Unterschrift.

Da auch der aktuelle Konsens ist, dass Sie base64 verwenden sollte, da es weit verbreitet ist, werde ich auch darauf hinweisen, dass diese is , was ich benutze ... Ich bin nur neugierig, wenn jemand verwendet etwas anderes und wenn ja, warum.

Bearbeiten : Nur falls jemand stolpert über diese, wenn Sie Base64 wollen in einem Cookie zum Speichern von Daten verwenden, müssen Sie verwenden eine Implementierung Base64 geändert. Siehe diese Antwort aus dem Grunde, warum.

War es hilfreich?

Lösung

Für Cookie-Werte codiert, müssen Sie vorsichtig sein. Sehen Sie diese ältere Antwort :

  

Mit der Version 0 Cookies, Werte sollten   nicht enthalten Leerraum, Klammern,   Klammern, Gleichheitszeichen , Komma,   doppelte Anführungszeichen, Schrägstriche, Frage   Markierungen, an Zeichen, Doppelpunkte und   Semikolons. Leere Werte dürfen nicht   auf die gleiche Weise auf allen Browsern verhalten.

Base64-Codierung kann = Symbole für bestimmte Eingaben erzeugen, und dies technisch nicht erlaubt ist, in Cookies (Version 0 Cookies, wie auch immer, die die am weitesten unterstützt werden). In der Praxis vermutet, dass ich die = tatsächlich funktioniert gut, aber vielleicht auch nicht.

Ich würde vorschlagen, dass absolut sicher sein, dass Ihre codierte binären ist Cookie-kompatibel, dann grundlegende Hex-Codierung ist am sichersten (zB in Java ).

Bearbeiten Wie @ Paul helfend wies darauf hin, gibt es eine

Bearbeiten : @shoosh wies darauf hin, dass die = nur das Endes des Base64-String zur Bezeichnung verwendet wird, so dass Sie den = trimmen könnten, das Cookie gesetzt, dann die = wieder wieder anbringen, wenn Sie brauchen zu dekodieren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top