Bu kendim için gelecekteki bir referans. Soru en kötü durumda olduğu için satır sonlarını dikkate almalıyız. RFC 1421, maksimum satır uzunluğunu 64 karakter olarak tanımlarken, RFC 2045 (MIME) bir satırda en fazla 76 karakter olacağını belirtir.
İkincisi, C # kütüphanesinin uyguladığı şeydir. Satır sonu 2 karakter (\ r \ n) olan Windows ortamında şunu elde ederiz:Length = Floor(Ceiling(N/3) * 4 * 78 / 76)
Not: Döşeme, C # ile yaptığım test sırasında, son satır tam olarak 76 karakterle bitiyorsa, satır sonu gelmemesidir.
Aşağıdaki kodu çalıştırarak kanıtlayabilirsiniz:
byte[] bytes = new byte[16 * 1024];
Console.WriteLine(Convert.ToBase64String(bytes, Base64FormattingOptions.InsertLineBreaks).Length);
76 karakterlik satırlarla base64'e kodlanmış 16 kByte için yanıt: 22422 karakter
Linux'ta olduğunu varsayın Length = Floor(Ceiling(N/3) * 4 * 77 / 76)
ama henüz .NET çekirdeğimde test edemedim.