Dies ist eine zukünftige Referenz für mich. Da die Frage im schlimmsten Fall ist, sollten wir Zeilenumbrüche berücksichtigen. Während RFC 1421 die maximale Zeilenlänge auf 64 Zeichen definiert, gibt RFC 2045 (MIME) an, dass sich höchstens 76 Zeichen in einer Zeile befinden.
Letzteres hat die C # -Bibliothek implementiert. In einer Windows-Umgebung, in der ein Zeilenumbruch 2 Zeichen (\ r \ n) beträgt, erhalten wir Folgendes:Length = Floor(Ceiling(N/3) * 4 * 78 / 76)
Hinweis: Der Bodenbelag liegt daran, dass während meines Tests mit C #, wenn die letzte Zeile mit genau 76 Zeichen endet, kein Zeilenumbruch folgt.
Ich kann es beweisen, indem ich den folgenden Code ausführe:
byte[] bytes = new byte[16 * 1024];
Console.WriteLine(Convert.ToBase64String(bytes, Base64FormattingOptions.InsertLineBreaks).Length);
Die Antwort für 16 kByte, die mit 76 Zeichenzeilen an base64 codiert wurden: 22422 Zeichen
Angenommen, unter Linux wäre dies der Fall, Length = Floor(Ceiling(N/3) * 4 * 77 / 76)
aber ich bin noch nicht dazu gekommen, es auf meinem .NET-Kern zu testen.