Samstag, 2. Juli 2011

Base64-Strings encodieren und decodieren

Gerade wenn man Web-Applikationen entwickelt und mit Datenübertragungen zu tun hat, wird man regelmäßig mit sogenannten Base64-Strings konfrontiert. Wenn man dieses zum ersten Mal hört, fragt man sich wahrscheinlich, was das eigentlich ist.
Dabei ist das alles eigentlich ganz einfach. Base64 ist eine Kodierung für 8-Bit-Binärdaten wie zum Beispiel Bilder, PDF-Dokumente oder Zip-Archive. Bei einer Base64-Kodierung werden die Binärdaten zum Beispiel eines Bildes in einen lesbaren ACII-String umgewandelt. Daher ist auch oft die Rede von einem Base64-String. Erkennen kann man eine solche Zeichenkette daran, dass keine Sonderzeichen außer "+", "/" und "=" vorhanden sind und der String immer mit einem "="-Zeichen endet.

Setzt man das ganze nun in der Programmierung (C# / .Net) um, könnte es wie folgt aussehen.

Daten encodieren / String in Base64-String umwandeln

public string base64Encode(string dataToEncode)
{
     // Übergebenen String in ein ByteArray umwandeln
     byte[] bytesToEncode = System.Text.Encoding.UTF8.GetBytes(dataToEncode);

     // Erstelltes ByteArray in einen Base64 kodierten String umwandeln und zurückgeben
     return Convert.ToBase64String(bytesToEncode);
}  

Daten decodieren / Base64-String in String umwandeln

public string base64Decode(string dataToDecode)
{
     // Ein Objekt der Klasse ASCIIEncoding instanziieren
     System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding();

     // Übergebenen String in ein ByteArray umwandeln
     byte[] bytesToDecode = Convert.FromBase64String(dataToDecode);

     // Erstelltes ByteArray aus dem Base64-String in einen decodierten (nicht kodierten) String umwandeln und zurückgeben
     return encoding.GetString(bytesToDecode);
}

Keine Kommentare:

Kommentar veröffentlichen