Estoy tratando de entender lo siguiente:¿Por qué C# Convert.ToBase64String() me da 88 como longitud cuando paso en 64 bytes?
Si declaro 64 bytes como la longitud de la matriz (buffer). Cuando me convierto en una cadena base 64, dice que la longitud es 88. ¿No debería ser solo la longitud 64, ya que estoy pasando 64 bytes? Podría estar totalmente equivocado sobre cómo funciona esto realmente. Si es así, ¿podrías explicarme?
//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);
Por cierto: lanzar una excepción es una forma horrible de registrar un valor simple ... –
No usaría Cifrado RGN personalmente, Un RNG criptográficamente fuerte será más lento --- requiere más computación --- y será espectralmente blanco, – MethodMan
Mire este StackOverFlow Explicación de por qué no es seguro usar RGN http://stackoverflow.com/questions/4892588/rngcryptoserviceprovider-random-number-review – MethodMan