Desktop application for hiding encrypted text inside images using the LSB (Least Significant Bit) steganography method with AES-256-GCM encryption.
- Java 17+
- Maven 3.6+
git clone https://github.com/MrMayestic/ImageVault.git
cd ImageVaultmvn javafx:run- Open the ENCODE tab
- Click Pick Image and select an image (PNG, BMP, JPG)
- Choose Select File to pick a
.txtfile, or Input text to type directly - Enter a password (optional)
- Click Encode
- Preview the result image and click Download to save it
- Open the DECODE tab
- Click Pick Image and select the encoded image
- Enter the same password used during encoding
- Click Decode
- The hidden message will appear in the text area
- Java 17
- JavaFX 21
- Maven
- AtlantaFX (NordDark theme)
- AES-256-GCM (
javax.crypto) - LSB steganography (
javax.imageio) - JUnit 5 (unit tests)
mvn testsrc/main/java/com/imagevault/
Main.java
controller/
TaskController.java
model/
StegoEncoder.java
StegoDecoder.java
EncryptData.java
util/
errorHandler.java
src/test/java/com/imagevault/
controller/
TaskControllerTest.java
model/
EncryptDataTest.java
StegoDecoderTest.java
StegoEncoderTest.java
Patryk Pilch, Szymon Kodura - AGH University of Science and Technology, 2026