Base64 Kodierung
-
Hallo,
kennt sich einer mit Base64 Kodierung aus? Sagen wir mal ich möchte 3 mal den Buchstaben A übertragen. Das sind in ASCII ja 3 Bytes
01000001 01000001 01000001 .Base64 codiert ergibt das: Q U F B .
Warum wurden jetzt aus 3 Bytes überhaupt 4 Bytes ?
Q wäre ja 010000 für mich sind das 6 bit und keine 8 bit oder
U ist ja 010100 also auch 6 bit
-
Schon mal was von der Wikipedia gehört?
-
Stefan Bauer schrieb:
Warum wurden jetzt aus 3 Bytes überhaupt 4 Bytes ?
Das ist der Gedankenfehler.
-
angeblich erhöht sich der Speicherverbrauch um 33%. Ich versteh das nicht. Ich versteh das ganze verfahren nicht. Angeblich wuerden die Daten korrupt wenn man Base64 nicht benutzt. Protokolle würden Sonderzeichen wie Zeilenumbruch irgendwie interpretieren. Solange die Daten übertragen werden ist mir das doch egal oder. Ich versteh nicht warum man die Daten die übertragen werden sollen, nochmal kodiert. Verschlüsselung macht ja Sinn, aber warum nochmal kodieren. Hm..
Wikipedia bietet mir keine vernünftige Erklärung.
-
Stefan Bauer schrieb:
angeblich erhöht sich der Speicherverbrauch um 33%.
Richtig. Wenn man statt 8 Bit pro Byte nur noch 6 Bit pro Byte zur Verfügung hat, braucht man halt mehr Bytes. Logisch, oder?
Ich versteh das nicht. Ich versteh das ganze verfahren nicht.
Dann lies nochmal nach. Oder stell konkrete Fragen.
Angeblich wuerden die Daten korrupt wenn man Base64 nicht benutzt. Protokolle würden Sonderzeichen wie Zeilenumbruch irgendwie interpretieren. Solange die Daten übertragen werden ist mir das doch egal oder.
Wenn am Ende was anderes rauskommt als am Anfang reingetan wurde, wäre mir das nicht egal. Zum Beispiel, weil die Übertragung halt nur 6 Bits unterstützt. Aber Du verrätst ja nichmal, welches Übertragungsverfahren Du meinst. Also kann man hier auch nur doof rumstochern. Und darauf hat keiner Bock.
-
Stefan Bauer schrieb:
angeblich erhöht sich der Speicherverbrauch um 33%. Ich versteh das nicht. Ich versteh das ganze verfahren nicht. Angeblich wuerden die Daten korrupt wenn man Base64 nicht benutzt. Protokolle würden Sonderzeichen wie Zeilenumbruch irgendwie interpretieren. Solange die Daten übertragen werden ist mir das doch egal oder. Ich versteh nicht warum man die Daten die übertragen werden sollen, nochmal kodiert. Verschlüsselung macht ja Sinn, aber warum nochmal kodieren. Hm..
Wikipedia bietet mir keine vernünftige Erklärung.Base64 wird typischerweise dafür verwendet um Binärdaten über ein textbasiertes Protokoll zu schicken.
Also zB eine beliebige Binärdatei über HTTP. Oder MIME-Anhänge über SMTP (Email). Etc.Stefan Bauer schrieb:
Angeblich wuerden die Daten korrupt wenn man Base64 nicht benutzt. Protokolle würden Sonderzeichen wie Zeilenumbruch irgendwie interpretieren
Gemeint ist hier die Interpretationen (das Parsen) des zugrundeliegenden textbasierten Trägerprotokolls.
Weil hier eben spezielle Zeichen(-abfolgen) syntaktische Bedeutung haben. Da kann es fatal sein wenn deine Binärdaten zufällig eine Bytefolge beinhalten, die im Protokoll eine syntaktische Bedeutung hat. Denn dann wird sie rausgeschnitten und/oder die Übertragung bricht mit einem Fehler ab bzw verhält sich sonst irgendwie unvorhersehbar.