Richtig wäre m.M.n. 25% kleiner.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.
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