C # Преобразование Base64 -> byte []

93

У меня есть Base64 byte[]массив, который передается из потока, который мне нужно преобразовать в нормальный, byte[]как это сделать?

Суданта
источник
Что такое «Base64 byte[]»? В какой это кодировке?
SLaks
2
ты можешь поместить сюда код?
Fereydoon Barikzehy
Да, я не думаю, что у вас есть Base64 byte[]. Если он в формате Base64, это строка.
vapcguy

Ответы:

167

Вы должны использовать Convert.FromBase64String, чтобы превратить Base64, закодированный stringв byte[].

Зруты
источник
3
мне нужно byte[] - > byte[] | этот методbyte[] -> string
Суданта
4
Base64 - это всегда текст в формате ascii. Так что Encoding.ASCII.GetString(base64arr)сначала сделай .
Nyerguds
3
Теперь есть Convert.FromBase64CharArray.
Ли Лувьер
41

Это может быть полезно

byte[] bytes = System.Convert.FromBase64String(stringInBase64);
Селим Реза
источник
7

Пытаться

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

Вы ищете FromBase64Transformкласс, используемый с CryptoStreamклассом.

Если у вас есть строка, вы также можете позвонить Convert.FromBase64String.

SLaks
источник
3

Я написал для этого метод расширения:

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

Назовите это так:

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

Надеюсь, это кому-то поможет.

Duco
источник