1043 Stimmen

Wozu dient die Base-64-Kodierung?

Ich habe gehört, dass hier und da von "Base 64 Encoding" die Rede ist. Wofür wird sie verwendet?

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."

6voto

Eric Tuttleman Punkte 1300

Meistens habe ich gesehen, dass es verwendet wird, um binäre Daten in Kontexten zu kodieren, die nur ascii - oder einfache - Zeichensätze verarbeiten können.

4voto

Paul Tomblin Punkte 172816

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.

2voto

mugil k Punkte 21

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.

2voto

Jainabhi Punkte 57

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.

-1voto

Jody Fitzpatrick Punkte 359

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.

7 Stimmen

2 Stimmen

Sie interpretieren die Definition von "Verschlüsselung" weit zu wörtlich. Das Wort hat sich zu etwas entwickelt, das viel spezifischer ist als seine Ursprünge.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X