Ich habe gehört, dass hier und da von "Base 64 Encoding" die Rede ist. Wofür wird sie verwendet?
Antworten
Zu viele Anzeigen?Um das, was Brad sagt, ein wenig zu erweitern: Viele Transportmechanismen für E-Mail und Usenet und andere Möglichkeiten der Datenübertragung sind nicht "8-Bit-sauber", was bedeutet, dass Zeichen außerhalb des Standard-Ascii-Zeichensatzes bei der Übertragung verfälscht werden können - zum Beispiel könnte 0x0D als Wagenrücklauf angesehen und in einen Wagenrücklauf und Zeilenvorschub umgewandelt werden. Base 64 bildet alle binären Zeichen auf verschiedene Standard-Ascii-Buchstaben, -Zahlen und -Satzzeichen ab, so dass sie nicht auf diese Weise verfälscht werden.
Base64
Base64 ist ein Oberbegriff für eine Reihe ähnlicher Kodierungsschemata, die Binärdaten kodieren, indem sie sie numerisch behandeln und in eine Base 64-Darstellung übersetzen. Der Begriff Base64 hat seinen Ursprung in einer speziellen MIME-Kodierung für die Übertragung von Inhalten.
Base64-Kodierungsschemata werden üblicherweise verwendet, wenn binäre Daten kodiert werden müssen, die über Medien gespeichert und übertragen werden sollen, die für Textdaten ausgelegt sind. Damit soll sichergestellt werden, dass die Daten während des Transports unverändert bleiben. Base64 wird häufig in einer Reihe von Anwendungen verwendet, z. B. für E-Mail über MIME und die Speicherung komplexer Daten in XML.
Eine hexadezimale Ziffer besteht aus einem Nibble (4 Bits). Zwei Nibbles ergeben 8 Bits, die auch als 1 Byte bezeichnet werden.
MD5 erzeugt eine 128-Bit-Ausgabe, die durch eine Folge von 32 hexadezimalen Ziffern dargestellt wird, die wiederum 32*4=128 Bit sind. 128 Bits ergeben 16 Bytes (da 1 Byte aus 8 Bits besteht).
Jedes Base64-Zeichen kodiert 6 Bits (mit Ausnahme des letzten Nicht-Pad-Zeichens, das 2, 4 oder 6 Bits kodieren kann, und der letzten Pad-Zeichen, falls vorhanden). Daher sind für einen 128-Bit-Hash gemäß Base64-Kodierung mindestens 128/6=22 Zeichen erforderlich, zuzüglich etwaiger Auffüllzeichen.
Mit base64 können wir die kodierte Ausgabe in der von uns gewünschten Länge (6, 8 oder 10) erzeugen. Wenn wir uns für eine 8 Zeichen lange Ausgabe entscheiden, belegt sie nur 8 Bytes, während sie bei der 128-Bit-Hash-Ausgabe 16 Bytes beanspruchte.
Die base64-Kodierung dient also nicht nur der Sicherheit, sondern auch der Reduzierung des Platzbedarfs.
Base64 kann für viele Zwecke verwendet werden.
Der Hauptgrund dafür ist die Umwandlung von Binärdaten in etwas Passendes.
Manchmal verwende ich es, um JSON-Daten von einer Website zur anderen weiterzuleiten, Informationen in Cookies über einen Benutzer zu speichern.
Anmerkung: Man "kann" es zur Verschlüsselung verwenden - ich verstehe nicht, warum man sagt, dass man das nicht kann und dass es keine Verschlüsselung ist, obwohl es leicht zu knacken wäre und verpönt ist. Verschlüsselung bedeutet nichts anderes als die Umwandlung einer Datenfolge in eine andere Datenfolge, die entweder später entschlüsselt werden kann oder nicht, und genau das tut base64.
- See previous answers
- Weitere Antworten anzeigen
9 Stimmen
Aus dem Handbuch für base64_encode() : "Diese Kodierung wurde entwickelt, damit binäre Daten den Transport durch Transportschichten überstehen, die nicht 8-Bit sauber sind, wie z.B. Mail-Bodies."