-
Notifications
You must be signed in to change notification settings - Fork 0
Usage Guide
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.
Ü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.
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.
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);
// 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);
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);
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.
- ImageSteg zur Verschlüsselung in Bildern
- AnimatedGif zur Verschlüsselung in animierten GIFs
- VideoSteg zur Verschlüsselung in Videos
- MP3Steganography zur Verschlüsselung in MP1-/MP2-/MP3-Dateien