C # แปลง Base64 -> ไบต์ []


93

ฉันมี Base64 byte[]อาร์เรย์ที่ถ่ายโอนจากสตรีมซึ่งฉันต้องแปลงเป็นแบบปกติbyte[]จะทำอย่างไร?


"Base64 byte[]" คืออะไร? มันอยู่ในการเข้ารหัสอะไร?
SLaks

2
ใส่รหัสที่นี่ได้ไหม
Fereydoon Barikzehy

ใช่ครับผมไม่คิดว่าคุณมี byte[]Base64 หากอยู่ในรูปแบบ Base64 แสดงว่าเป็นสตริง
vapcguy

คำตอบ:


168

คุณต้องใช้Convert.FromBase64Stringเพื่อเปลี่ยนBase64 ที่เข้ารหัสstringเป็นไฟล์byte[].


3
ฉันต้องการbyte[] - > byte[] | วิธีนี้คือbyte[] -> string
Sudantha

5
Base64 เป็นข้อความ ascii เสมอ ดังนั้นแค่ทำEncoding.ASCII.GetString(base64arr)ครั้งแรก
Nyerguds

3
มี Convert.FromBase64CharArray ในขณะนี้
Lee Louviere


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.


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();

ฉันหวังว่ามันจะช่วยใครสักคน

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.