AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Sinn von Base64?

Ein Thema von milos · begonnen am 13. Nov 2014 · letzter Beitrag vom 14. Nov 2014
Antwort Antwort
Benutzerbild von milos
milos

Registriert seit: 14. Jul 2008
Ort: Bern (CH)
509 Beiträge
 
Delphi 11 Alexandria
 
#1

Sinn von Base64?

  Alt 13. Nov 2014, 18:59
Hi,

was hat Base64 für einen Sinn? Bei Base64 werden ja nur 6 Bits genommen und davor 2 nullen gesetzt also "verschwendet" man von einen Byte ja 2 Bits und daher werden ja z.B. Bilder 30% grösser. Wieso nutzt man nicht Base256? Da sollte man ja theoretisch alle Bits eines Bytes nutzen können oder etwa nicht?

Wäre für eine erklärung dankbar, da ich irgendwie nichts richtiges dazu finde.

Freundliche Grüsse
Milos
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#2

AW: Sinn von Base64?

  Alt 13. Nov 2014, 19:01
Bei der Übertragung von E-Mails wurden früher nur gewisse Zeichen unterstützt.
Man hat damit einen Weg gefunden, prinzipiell beliebige Binärdaten (Bilder) in einem begrenzten Zeichensatz zu übertragen, dessen Zeichen garantiert funktionieren.

Jeder SMTP-Server wird deine E-Mail wegwerfen, wenn du die vollen 8-bit pro Byte ausschöpfst. SMTP ist eben ein textbasiertes Protokoll.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: Sinn von Base64?

  Alt 13. Nov 2014, 19:28
Wikipedia: Base64
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

AW: Sinn von Base64?

  Alt 13. Nov 2014, 20:16
Letztendlich werden mit Base64 Dateien, die Steuerzeichen enthalten, so codiert, dass sie nur anzeigbare Zeichen enthalten.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.639 Beiträge
 
#5

AW: Sinn von Base64?

  Alt 13. Nov 2014, 21:23
Die wichtigsten Sachen wurden schon gesagt.
So kann man beispielsweise auch Binärdaten wie Bilder direkt innerhalb von CSS oder direkt im HTML-Quelltext einer Webseite übertragen.

Damit wird die Datei zwar größer, und man verschwendet ein wenig Speicherplatz, aber spart sich zum Beispiel einen weiteren Request zum separaten Download der Bilder. Wenn man hier bei kleinen Seiten Performanceoptimierungen betreibt kann es sinnvoller sein, bestimmte kleine Bilder direkt mit zu liefern, als wegen ein paar Icons jedes mal einen neuen Request schicken zu müssen. Beispiel aus der Wikipedia zu Data-URL:

Code:
<img src="data:image/png;base64,
iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAABGdBTUEAALGP
C/xhBQAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9YGARc5KB0XV+IA
AAAddEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIFRoZSBHSU1Q72QlbgAAAF1J
REFUGNO9zL0NglAAxPEfdLTs4BZM4DIO4C7OwQg2JoQ9LE1exdlYvBBeZ7jq
ch9//q1uH4TLzw4d6+ErXMMcXuHWxId3KOETnnXXV6MJpcq2MLaI97CER3N0
vr4MkhoXe0rZigAAAABJRU5ErkJggg==" alt="Roter Punkt" />
Ausserdem lässt sich der Text mit Deflate oder GZip wieder recht gut komprimieren
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#6

AW: Sinn von Base64?

  Alt 13. Nov 2014, 21:26
Letztendlich werden mit Base64 Dateien, die Steuerzeichen enthalten, so codiert, dass sie nur anzeigbare Zeichen enthalten.
Hmmm, ganz lapidar wird einfach jede Datei (eine Aneinanderreihung von 8Bit-Bytes) in eine Ziffernfolge umgewandelt (nicht dual (2) oder dezimal (10) oder hexadezimal (16) sondern eben Base64 (64)). Und geschickterweise lassen sich diese 64 Ziffern ganz hervorragend durch jedes System schleusen.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#7

AW: Sinn von Base64?

  Alt 13. Nov 2014, 21:27
Genauso wie HEX ist es eine andere "Darstellung" von Daten, nur halt etwas komprimierter, als z.B. Hexadezimal, Oktal oder Binär (0/1).

Und wie bereits erwähnt ist es dafür da, um Daten (vorallem wegen der Steuerzeichen) in "ungefährlichen" ASCII-Code (7 Bit) umzuwandeln.

PS: Es gibt auch nicht wirklich DAS Base64, denn je nach Zielumgebung verwendet es für die Codierung auch schonmal einen etwas anderen Zeichensatz. (vorallem die letzten 2 Zeichen)
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ mit = als Füllzeichen

Denn in URLs haben + und / auch eine gewisse Bedeutung, weswegen man da meistens was Anderes verwendet.
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_ mit = als Füllzeichen

uva.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (13. Nov 2014 um 21:29 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von milos
milos

Registriert seit: 14. Jul 2008
Ort: Bern (CH)
509 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Sinn von Base64?

  Alt 14. Nov 2014, 21:47
Danke für die vielen antworten
Hat mir Licht ins dunkle gebracht
Milos
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:29 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz