Почему C# Convert.ToBase64String() выдает мне 88 в качестве длины, когда я передаю 64 байта?

Я пытаюсь понять следующее:

Если я объявляю 64 байта в качестве длины массива (буфера). Когда я конвертирую в строку base 64, он говорит, что длина равна 88. Разве длина не должна быть только 64, так как я передаю 64 байта? Возможно, я совершенно не понимаю, как это работает на самом деле. Если это так, не могли бы вы объяснить.

//Generate a cryptographic random number
RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider();

// Create byte array
byte[] buffer = new byte[64];

// Get random bytes
rng.GetBytes(buffer);

// This line gives me 88 as a result. 
// Shouldn't it give me 64 as declared above?
throw new Exception(Convert.ToBase64String(buffer).Length.ToString());

// Return a Base64 string representation of the random number
return Convert.ToBase64String(buffer);
7
задан Frankie 1 February 2012 в 20:30
поделиться