C # Convertir un Base64 -> octet []

93

J'ai un Base64 byte[]tableau qui est transféré à partir d'un flux dont j'ai besoin pour le convertir en un tableau normal byte[]comment faire cela?

Sudantha
la source
Qu'est-ce qu'un "Base64 byte[]"? Dans quel encodage est-il?
SLaks
2
pouvez-vous mettre le code ici?
Fereydoon Barikzehy
Ouais, je ne pense pas que vous ayez un Base64 byte[]. Si c'est au format Base64, c'est une chaîne.
vapcguy

Réponses:

167

Vous devez utiliser Convert.FromBase64String pour transformer un Base64 encodé stringen un fichierbyte[] .

Zruty
la source
3
j'ai besoin byte[] - > byte[] | cette méthode estbyte[] -> string
Sudantha
4
Base64 est toujours du texte ascii. Alors faites d' Encoding.ASCII.GetString(base64arr)abord.
Nyerguds
3
Il y a maintenant un Convert.FromBase64CharArray.
Lee Louviere
41

Cela peut être utile

byte[] bytes = System.Convert.FromBase64String(stringInBase64);
Selim Reza
la source
7

Essayer

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
Yahia
la source
3

Vous recherchez la FromBase64Transformclasse, utilisée avec la CryptoStreamclasse.

Si vous avez une chaîne, vous pouvez également appeler Convert.FromBase64String.

SLaks
la source
3

J'ai écrit une méthode d'extension à cet effet:

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

Appelez ça comme ça:

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

J'espère que cela aide quelqu'un.

Duco
la source