131

I have a Base64 byte[] array which is transferred from a stream which i need to convert it to a normal byte[] how to do this ?

Ofir Hadad
  • 1,800
  • 3
  • 26
  • 47
Sudantha
  • 15,684
  • 43
  • 105
  • 161

5 Answers5

229

You have to use Convert.FromBase64String to turn a Base64 encoded string into a byte[].

jAC
  • 5,195
  • 6
  • 40
  • 55
Zruty
  • 8,377
  • 1
  • 25
  • 31
56

This may be helpful

byte[] bytes = System.Convert.FromBase64String(stringInBase64);
Selim Reza
  • 1,004
  • 9
  • 12
9

Try

byte[] incomingByteArray = receive...; // This is your Base64-encoded bute[]

byte[] decodedByteArray =Convert.FromBase64String (Encoding.ASCII.GetString (incomingByteArray)); 
// This work because all Base64-encoding is done with pure ASCII characters
quadroid
  • 8,444
  • 6
  • 49
  • 82
Yahia
  • 69,653
  • 9
  • 115
  • 144
4

You're looking for the FromBase64Transform class, used with the CryptoStream class.

If you have a string, you can also call Convert.FromBase64String.

SLaks
  • 868,454
  • 176
  • 1,908
  • 1,964
3

I've written an extension method for this purpose:

public static byte[] FromBase64Bytes(this byte[] base64Bytes)
{
    string base64String = Encoding.UTF8.GetString(base64Bytes, 0, base64Bytes.Length);
    return Convert.FromBase64String(base64String);
}

Call it like this:

byte[] base64Bytes = .......
byte[] regularBytes = base64Bytes.FromBase64Bytes();

I hope it helps someone.

Duco
  • 246
  • 1
  • 10