File | Date | Author | Commit |
---|---|---|---|
.idea | 2025-01-23 |
![]() |
[ad5125] Added GUI |
src | 2025-01-23 |
![]() |
[0d885c] Modified readme |
README.md | 2025-01-23 |
![]() |
[0d885c] Modified readme |
Security-Project4.iml | 2025-01-23 |
![]() |
[ad5125] Added GUI |
The Phase1
program decodes hidden messages (text or images) embedded within a source image using steganographic techniques. It supports decoding text and images by extracting least significant bits (LSBs) from pixel channels. The program also includes utilities to analyze raster image data. This project was a collaboration between Ahsan Rhandawa and I.
In addition to the standard Java-based command-line usage, there is a standalone GUI tool (Phase1.jar
) for easier interaction with the program.
Phase1.jar
) for visual interaction.Java AWT and ImageIO libraries (included in the standard JDK).
For Standalone GUI Tool (Phase1.jar
):
Phase1.jar
).Open a terminal in this directory and run the command with these command-line arguments:
java Phase1 [filename] [HiddenMessageType] [LRTBOrTBLR] [rORfORsLength] [rORfORsData] [numberOfSignificantBits] [ArrayOFleastSignificantBits] [numberOfPixelChannels] [arrayOfPixelChannels]
Phase1.jar
):If you'd prefer a GUI, you can use the Phase1.jar
file. To run the GUI tool:
Phase1.jar
file and run the following command in the terminal (or double-click the file on supported systems):bash
java -jar Phase1.jar
The GUI will allow you to interact with the program through a more user-friendly interface, eliminating the need for command-line arguments.
text
, png
, or lw
).LRTB
: Left-to-right, top-to-bottom.TBLR
: Top-to-bottom, left-to-right.r
: Reverse bits.f
: Flip bits.s
: Keep bits straight.r
: Reverse bits.f
: Flip bits.s
: Keep bits straight.java Phase1 example.png text LRTB r s 1 0 3 0 1 2
getNextIntFromImage
Extracts the next 32 bits as an integer from the image based on the configured reading order and bit manipulations.
getTextData
Extracts and decodes hidden text from the image based on the provided length.
getImageData
Decodes a hidden image by extracting pixel data and creating a new image.
getImageWithLeastSignificantBit
Generates an image visualizing the least significant bits of the source image's pixels.
Decoding/
directory.Decoding/
) must exist or be created manually.Phase1.jar
) does not require command-line arguments, providing an easier way to interact with the tool.Phase1.java
: Main program file with all decoding logic.Decoding/
: Output directory for decoded images.Phase1.jar
: Standalone GUI tool packaged with Java Runtime Environment (JRE).Phase1.jar
.This project is licensed under the MIT License.