C # Converter um Base64 -> byte []


97

Eu tenho uma Base64 byte[]matriz que é transferida de um fluxo que preciso convertê-la em normal. byte[]Como fazer isso?


O que é um "Base64 byte[]"? Em que codificação está?
SLaks

2
você pode colocar o código aqui?
Fereydoon Barikzehy

Sim, não acho que você tenha uma Base64 byte[]. Se estiver no formato Base64, é uma string.
vapcguy de

Respostas:


176

Você tem que usar Convert.FromBase64String para transformar um Base64 codificado stringem um byte[].


3
eu preciso byte[] - > byte[] | este método ébyte[] -> string
Sudantha

5
Base64 é sempre texto ascii. Então, faça Encoding.ASCII.GetString(base64arr)primeiro.
Nyerguds

3
Agora existe um Convert.FromBase64CharArray.
Lee Louviere

42

Isso pode ser útil

byte[] bytes = System.Convert.FromBase64String(stringInBase64);

7

Experimentar

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

3

Você está procurando a FromBase64Transformclasse, usada com oCryptoStream classe.

Se você tiver uma string, também pode chamar Convert.FromBase64String.


3

Eu escrevi um método de extensão para este propósito:

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

Chame assim:

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

Eu espero que isso ajude alguém.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.