C # Konvertiere ein Base64 -> Byte []

90

Ich habe ein Base64 byte[]Array, das von einem Stream übertragen wird, den ich brauche, um es in einen normalen zu konvertieren. byte[]Wie geht das?

Sudantha
quelle
Was ist ein "Base64 byte[]"? In welcher Kodierung ist es?
SLaks
2
Kannst du den Code hier einfügen?
Fereydoon Barikzehy
Ja, ich glaube nicht, dass Sie eine Base64 haben byte[]. Wenn es im Base64-Format vorliegt, handelt es sich um eine Zeichenfolge.
Vapcguy

Antworten:

162

Sie müssen verwenden Convert.FromBase64String ein einzuschalten Base64 codiert stringin ein byte[].

Zruty
quelle
3
ich brauche byte[] - > byte[] | Diese Methode istbyte[] -> string
Sudantha
4
Base64 ist immer ASCII-Text. Also mach es einfach Encoding.ASCII.GetString(base64arr)zuerst.
Nyerguds
3
Es gibt jetzt ein Convert.FromBase64CharArray.
Lee Louviere
38

Dies kann hilfreich sein

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

Versuchen

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
quelle
3

Du suchst die FromBase64TransformKlasse, die mit der verwendet wirdCryptoStream Klasse verwendet wird.

Wenn Sie eine Zeichenfolge haben, können Sie auch aufrufen Convert.FromBase64String.

SLaks
quelle
3

Ich habe zu diesem Zweck eine Erweiterungsmethode geschrieben:

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

Nennen Sie es so:

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

Ich hoffe es hilft jemandem.

Duco
quelle