Java String in Base64 konvertieren

Posted: November 26th, 2013 | Filed under: Java, Programmieren, Tutorials | Tags: , , , , , , , | No Comments »

Mittels Base64 kann man beliebige Binärdaten oder Strings in eine Zeichenfolge aus lesbaren ASCII-Zeichen umwandeln. Momentan setzte ich Base64 ein, um sonderzeichenbehaftet Datei-Pfade in “harmlose” Strings umzuwandeln.  Ein wenig erstaunt hat mich, dass Java dies von Haus aus nicht kann.

Um ein String in Java problemlos in eine Base64-Zeichenketten umzuwandeln könnt ihr die Bibliothek commons-codec aus dem Hause Apache verwenden:

Herunteladen der Bibliothek

Ladet die aktuelle Version der Bibliothek hier runter:

http://commons.apache.org/proper/commons-codec/download_codec.cgi

Zum Beispiel diese hier: http://apache.mirror.iphh.net//commons/codec/binaries/commons-codec-1.8-bin.zip

Entpacken

In der Zip-Datei befinden sich häufig viele *.jar-Dateien, ihr benötigt lediglich die rot markiert Datei. Entpackt diese.

image

Bibliothek ins Projekt importieren

Jetzt müsst ihr die Bibliothek in Form der Jar-Datei in euer Projekt importieren. In eclipse könnt ihr das über die Projekteigenschaften umsetzen. Idealerweise kopiert ihr eure verwendeten Bibliotheken in ein Verzeichnis innerhalb des Projektes, zum Beispiel in den Ordner Libs: [projektname]\lib\commons-codec-1.8.jar

image

image

image

image

image

String in Base64

Nachdem ihr die Bibliothek commons-codecs erfolgreich eingebunden habt, könnt ihr wie folgt Strings nach Base64 codieren.

import org.apache.commons.codec.binary.Base64;

public class ConvertStringToBase64 {

    public static void main(String[] args) {

        String text = "Hallo, was geht ab!";

        // Einen String in Base64 konvertieren (encode)
        String base64 = new String(Base64.encodeBase64(text.getBytes()));

        System.out.println(base64);

        // Einen Base64-String wieder zurück konvertieren (decode)
        String text2 = new String(Base64.decodeBase64(base64));

        System.out.println(text2);
    }
}

Konsolenausgabe:

SGFsbG8sIHdhcyBnZWh0IGFiIQ==
Hallo, was geht ab!

Das war’s auch schon, hoffe ich konnte dem ein oder anderen von euch helfen  😉