C # Konwertuj Base64 -> bajt []

92

Mam Base64 byte[]tablicę, która jest przenoszona ze strumienia, który muszę przekonwertować na normalny, byte[]jak to zrobić?

Sudantha
źródło
Co to jest „Base64 byte[]”? W jakim jest kodowaniu?
SLaks
2
czy możesz tu umieścić kod?
Fereydoon Barikzehy
Tak, nie sądzę, że masz Base64 byte[]. Jeśli jest w formacie Base64, jest to ciąg.
vapcguy

Odpowiedzi:

166

Musisz użyć Convert.FromBase64String obrócić Base64 zakodowane stringw byte[].

Zruty
źródło
3
potrzebuję byte[] - > byte[] | ta metoda tobyte[] -> string
Sudantha
4
Base64 jest zawsze tekstem ascii. Więc zrób Encoding.ASCII.GetString(base64arr)najpierw.
Nyerguds
3
Jest teraz Convert.FromBase64CharArray.
Lee Louviere
41

To może być pomocne

byte[] bytes = System.Convert.FromBase64String(stringInBase64);
Selim Reza
źródło
7

Próbować

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
źródło
3

Szukasz FromBase64Transformklasy używanej z CryptoStreamklasą.

Jeśli masz ciąg, możesz również zadzwonić Convert.FromBase64String.

SLaks
źródło
3

W tym celu napisałem metodę rozszerzającą:

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

Nazwij to tak:

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

Mam nadzieję, że to komuś pomoże.

Duco
źródło