Hilfetext Base64Decoder OutputBufferSize

Hier werden, insbesondere in den Beta-Phasen, Bugmeldungen gepostet. Das offizielle BugForum ist allerdings hier.
Syr2
Beiträge: 31
Registriert: 11.03.2020 13:39

Hilfetext Base64Decoder OutputBufferSize

Beitrag von Syr2 »

Text im Base64Decoder lautet:
Der Ausgabepuffer kann bis zu 33% kleiner als der Eingabepuffer sein, mit einer minimalen Größe von 64 Bytes. Es ist jedoch empfehlenswert, einen etwas größeren Puffer (etwa 30% kleiner) zu verwenden, um einen Speicherüberlauf ("Overflow") zu vermeiden.
Richtig wäre m.M.n. 25% kleiner.

1 Byte Base64 = 6 Bit Information (2^6 = 64 )
6/8 Bit = 3/4 Verhältnis.
Und weil immer ganze Bytes benötigt werden muss man die Ausgabe noch auf das nächste ganze Byte nach oben aufrunden.

Beispiel: 4 Zeichen Base64 : "0123" wird zu xx000000 xx000001 xx000010 xx000011
wird zu 000000 000001 000010 000011
wird zu 00000000 00010000 10000011

Len(Eingabe) = 4
Len(Ausgabe) = 3 (ging jetzt genau auf, kann aber auch eins höher sein)

Faktor Eingabe zu Ausgabe = 0.75
Also muss die Ausgabe 25% kleiner sein als die Eingabe. Sicherheitshalber eben n+1.

Gruß
Syr2
Syr2
Beiträge: 31
Registriert: 11.03.2020 13:39

Re: Hilfetext Base64Decoder OutputBufferSize

Beitrag von Syr2 »

Ich glaub die 33% wurden von der Kodierung her einfach übernommen. Da stimmt das angeblich, u.a. wegen zusätzlichen Zeilenumbrüchen.
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8679
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken
Kontaktdaten:

Re: Hilfetext Base64Decoder OutputBufferSize

Beitrag von NicTheQuick »

Stimmt, da wurde nicht ganz mit gedacht. Es kommt drauf an, was die Ausgangsgröße ist.

Von Original zu Base64 wird es 33% (eher 34%) größer, da das Verhältnis 4/3 = 1.333... ist.
Von Base64 zu Original wird es 25% kleiner, da das Verhältnis 3/4 = 0.75 ist.
Bild
Antworten