Skip to content

Usage Guide

SelinaWernike edited this page Feb 11, 2021 · 6 revisions

Nutzung

Umfang

Datenformate

Die Bibliothek unterstützt die steganographische Bearbeitung von (Enkodieren und Dekodieren):

  • PNG
  • BMP
  • GIF
  • AVI
  • MP3

Zusätzlich lassen sich Einstellungen zur Verschlüsselung angeben. Es ist möglich, bei der Enkodierung einen seed festzulegen, um eine stärkere Verschlüsselung zu ermöglichen. Dieser muss dann auch bei der Dekodierung angegeben werden.

APIs

Über verschiedene APIs kommuniziert die Bibliothek mit sozialen Netzwerken. Diese Bibliothek unterstüzt:

  • Tumbler (PNG, MP3,GIF und MP4) jedoch nur PNG und MP3 für Steganographische Bearbeitung geeignet
  • Twitter (Nur JPG)

Es ist möglich, sich das erzuegte steganographische Bild zu speichern und seperat hochzuladen, jedoch gibt es keine Garantie, dass das Bild wieder entschlüsselt werden kann. Dies unterscheidet sich von Social Media zu Social Media sehr stark. In der Sektion Erweiterung werden einige Netzwerke genannt, für die keine Umsetzung möglich war.

Nutzung

Das Interface SocialMediaSteganographie stellt einen einfachen Schnittpunkt mit dem Nutzer dar. Für genauere Einstellungen und Erläuterungen zu den Unterklassen können die entsprechenden Wiki Seiten aufgerufen werden.

Enkodieren und hochladen

Ein File kann direkt über das Interface enkodiert und auf einen Social Media hochgeladen werden. Alternativ lassen sich diese Schritte auch einzeln aufrufen.

    SocialMediaSteganography exampleSteganography; // Main Interface implementation
    String loadFilePath = "example/picture.png"; // Path to File that should be altert
    String keyword = "test"; // keyword under which the data is uploaded
    MediaType mediaType = MediaType.PNG; // media Type of the data. Here PNG 
    APINames apiNames = APINames.TUMBLR; // Social Media that should be used
    byte[] payload = new byte[] {1,2,3,4,5,6,7,8,9,10,11,12,13}; // byte Array containing data that needs to be hidden

    exampleSteganography = new SocialMediaSteganographyImpl();
    // Encode A MediaType from File and post it to the given Social Media platform
    steganography.encodeAndPost(apiNames,keyword,loadFilePath,payload,mediaType);
    // Read the File first, for example using the helper class ByteArrayUtils
    File file = new File(loadFilePath);
    byte[] testBytes = ByteArrayUtils.read(file);
    steganography.encodeAndPost(apiNames,keyword,testBytes,payload,mediaType);

    // Add a seed for saver encoding
    Long seed = 475635375L; // the same seed needs to be used for encoding and decoding
    steganography.setSeed(seed);
    steganography.encodeAndPost(apiNames,keyword,testBytes,payload,mediaType);

Speichern der Enkodierten Mediums in Datei

    // Download the encoded Media Type to a given Path
    String savePath = "example/save.png";
    steganography.saveEncodePicture(loadFilePath,mediaType,payload,savePath);
    //Or with a byteArray as parameter
    steganography.saveEncodedPicture(testBytes,payload,mediaType,savePath);

    // get the encoded Media Type as a byte[]
    byte[] steganographicCarrier = steganography.encodeCarrier(testBytes,payload,mediaType);

Herunterladen und Abonnieren

Für das Herunterladen von Bildern kann man einen SocialMedia-Service "abonnieren". Die Methode gibt die entsprechende Social Media Klasse zurück welchen der User weiterverwenden kann. Für genauere Informationen siehe das Javadoc oder die Ausführungen im Wiki. Er kann auch manuell über eine Methode alle Daten über ein keyword herunterladen. Für die unterstützte Implementation von Tumlr ist dies im Moment nicht möglich. Über das Interface kann ein steganographisches Bild dekodiert werden, dabei wird sie Payload zurückgegeben.

        /* If you want to download Dtata from social Media you can subscribe to a
           Social Media and get the respective Class. */
        SocialMedia socialMedia = steganography.subscribeToSocialMedia(keyword,apiNames);
        // Download data manually
        List<byte[]> listWithPayloads = steganography.getMediaAndDecode(keyword, apiNames, mediaType)
        // For only decoding
        steganography.decodeCarrier(mediaType,steganographicCarrier);

Sequenzdiagramm

Vereinfachtes Sequenzdiagramm eines Use Cases. Ein PNG wird steganographisch bearbeitet und auf Tumbler hochgeladen. Anschließend wird das PNG welches unter dem keyword "test" gepostet wurde wieder heruntergeladen. Mit Tumbler ist es momentan nicht möglich Dateien herunterzuladen. drawing

Home

Docs

Deployment

Usage Guide

Steganography

SocialMedia

Erweiterung

Beispielanwendung

Clone this wiki locally