Skip to content

Image Steganography Flutter App based on RGB algorithm

Notifications You must be signed in to change notification settings

rc4ne/The_Steg_Dog

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

The Steg Dog

A simple image steganography flutter application based on RGB algorithm originally developed by Pratik Mante.

Working

Front-End

  • Developed using flutter.
  • Contains an Encoding and a Decoding button on home screen.
  • Feature to select picture from gallery or click-on-the-go and encode.
  • A text box to enter the secret message to hide inside the image.
  • Image converted to bytes and sent to server.
  • Save the image.

Back-End

  • Developed on Python3. (Steg-Dog-Server)
  • The algorithm stores the image on system and then does the processing. (This can be eliminated from code if required)
  • Sends back the image as image bytes.

Usage

  • Clone the repository.
  • pip3 install pillow, textwrap
  • Steg-Dog-Server has the server file for backend along with sample images. Example images after the processing are included inside the repository. (tron - original, encoded_image, decoded_image)
  • Other files are for flutter application, run/edit inside android studio or ide of your choice.
  • First of all start the flask server.
  • Head to the directory where the server.py file is saved. From there use the command 'python Server.py' in the CMD to start the flask server.
  • Using Ngrok forward HTTP requests to the port on which your flask server is running. (Note: we had used Ngrok for testing, but its not mandatory any other thing can be used as per your choice)
  • Replace the URL in the Main.dart file at 2 places. (one where the encode request is made and other where decode request is made)

Improvements that can be done

  • Introducing mechanism for key generation and sharing can make the steganography way more secure. (or simply use a password for decryption for each image, this will need lots of reforming in code)
  • Improving the UI functionalities.
  • This is simple demonstration with no regard to threadings. Making the algorithm multithreaded for multiple users.
  • Including the algorithm as flutter code itself rather than using a backend if possible. This can reduce time.

Screen Shots

(1) Selecting an image along with setting the secret message for encoding

Pic1

(2) Image Received after encoding

Pic2

(3) Decoded image with a secret message (The red line is made to indicate the secret message)

Pic3

(4) Downloading and saving the image in the local storage (Image is saved with the name Stegd.png)

Pic4

(5) Decoded image (magnified for better understanding)

image

Note: The secret message is decoded in the form of the PNG image format

Feel free to use the code and improve it to next level 👍 Happy Coding!

Releases

No releases published

Packages

No packages published

Languages

  • Dart 68.3%
  • Python 25.5%
  • Objective-C 5.2%
  • Java 1.0%