Ist es möglich einen Base64 String zu verkürzen?

5 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Base64codierung benutzt man nur um Binärdaten in eine Textdatei (html, Programmsourcecode, etc) einzubinden.

Dein Beispiel macht nicht wirklich Sinn. Warum sollte man Text nach Base64 umwandeln?

Wie also könnte ich hier den zweiten String so verkürzen, dass ich ihn auch wieder "entschlüsseln" kann?

..garnicht. Wenn Du den den Base64-string irgendwie veränderst, änderst Du auch die enthaltene Information. (wenn Du von einer Bilddatei die hälfte abschneidest, ist das enthaltene Bild auch kaputt...logisch

Eine Komprimierung ist auch nicht möglich, da man ja Binärcode gerade mit Base64 umgehen möchte. (siehe Erklärung von @ohwehohach)

Ollig00 
Fragesteller
 28.09.2020, 16:19

Danke Dir.

Das oben mit den beiden Strings ist nur ein Beispiel. Dann muss der Base64 kodierte String eben so bleiben :)

MfG

0

Natürlich kannst du jeden String beliebig kürzen.

Allerdings hast du dann ja nur einen Teil.

Beim Base64 String kann dann natürlich nichts sinnvolles mehr übrig bleiben.

Ähnlich wie wenn du ein Photo mit einer Schere zerschneidet.

Wenn du nur einen Schnipsel hast kannst du nicht mehr das ursprüngliche Bild herstellen.

Natürlich. Du kannst jeden Kompressionsalgorithmus drüberlaufenlassen, der Dir beliebt. Aber normalerweise macht man es genau umgekehrt:

  1. Komprimieren
  2. Base64, um den verschlüsselten String verlustfrei übertragen zu können (z.B. wegen durch Komprimierung "Sonderzeichen", z.B. ASCII 10, 13 oder 0).

Base64 ist ja keine Verschlüsselung, sondern lediglich eine Möglichkeit, Bytefolgen beliebigen Inhalts so zu speichern oder zu übertragen, dass garantiert nur Buchstaben des Printable-ASCII verwendet werden (also nur US-amerikanische Buchstaben und Zahlen). So wird vermieden, dass der übetragene/gespeicherte Inhalt nicht eventuell ansonsten Steuerzeichen enthält, die die Übertragung stören.

Das wird kaum gehen, weil selbst wenn du einen sehr langen Text Base64 codierst und in eine Textdatei schreibst und mit Zip komprimierst wird sich nicht viel machen lassen, da Komprimierungen darauf abziehlen, dass man Teile und Gruppen von Wörtern verkürzt. Das ist bei Base64 nicht rentabel.

Auch andere Verschlüsselungen sind so, dass das Ergebnis länger ist als das Original.

Woher ich das weiß:eigene Erfahrung

Base64 wird immer länger sein, weil es auf ein kleineres Alphabet abbildet. Ist ja logisch: der Input kann volle 256 Möglichkeiten pro Stelle ausnutzen, der Output eben nur 64. Dazu kommt auch noch das Padding.