convert base64binary array c# encoding base64 bytearray type-conversion

c# - base64binary - Conversión de matriz de bytes a base64 y viceversa



decode base64 c# (1)

La razón por la que la matriz codificada es más larga en aproximadamente un cuarto es que la codificación base-64 usa solo seis bits de cada byte; esa es su razón de existencia: para codificar datos arbitrarios, posiblemente con ceros y otros caracteres no imprimibles, de una manera adecuada para el intercambio a través de canales ASCII, como el correo electrónico.

La forma en que recuperas tu matriz original es mediante el uso de Convert.FromBase64String :

byte[] temp_backToBytes = Convert.FromBase64String(temp_inBase64);

Estoy tratando de:

  1. Generar una matriz de bytes.
  2. Convertir esa matriz de bytes a base64
  3. Convertir esa cadena base64 de nuevo a una matriz de bytes.

He probado algunas soluciones, por ejemplo las de esta question .

Por alguna razón, las matrices de bytes iniciales y finales no coinciden. Aquí está el código utilizado:

using (RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider()) { byte[] originalArray = new byte[32]; rng.GetBytes(key); string temp_inBase64 = Convert.ToBase64String(originalArray); byte[] temp_backToBytes = Encoding.UTF8.GetBytes(temp_inBase64); }

Mis preguntas son:

  1. ¿Por qué "originalArray" y "temp_backToBytes" no coinciden? (originalArray tiene una longitud de 32, temp_backToBytes tiene una longitud de 44, pero sus valores también son diferentes)

  2. ¿Es posible convertir una y otra vez, y si es así, cómo puedo lograr esto?