Pixelhide is a professional steganography tool that allows you to hide any type of file inside a PNG image using LSB (Least Significant Bit) manipulation. It supports optional AES-256-GCM encryption for added security.
- Universal Hiding: Hide text, PDF, ZIP, EXE, or any other file type.
- Secure Encryption: Optional AES-256-GCM encryption with PBKDF2 key derivation.
- Integrity Checks: Validates payload capacity and magic bytes to ensure reliable embedding and extraction.
- Bit-Perfect Restoration: Extracts the hidden file exactly as it was, including the original filename.
- Clean CLI: Easy-to-use command-line interface with clear feedback.
-
Clone the repository:
git clone https://github.com/vision-dev1/pixelhide.git cd pixelhide -
Install dependencies:
pip install -r requirements.txt
Syntax:
python3 pixelhide.py encode (Image path) (File path) output.png ( your output photo name)Example - Without Encryption:
Using cover.png to hide secret.zip and creating stego_image.png:
python3 pixelhide.py encode images/cover.png secrets/secret.zip stego_image.pngExample - With Encryption: Protecting your file with a password:
python3 pixelhide.py encode images/cover.png secrets/secret.zip stego_image.png --password CreateyourpasswordhereSyntax:
python3 pixelhide.py decode stego_image_path output_directory_pathExample:
Extracting the hidden file from stego_image.png to the extracted/ folder:
python3 pixelhide.py decode stego_image.png ./extracted/Note: The decode system will automatically detect if the file is encrypted. If it is, you will be prompted to enter the password.
Pixelhide uses LSB (Least Significant Bit) steganography. It embeds the binary data of your file into the least significant bits of the RGB channels of the PNG pixels. This changes the color values slightly, but the difference is usually imperceptible to the human eye.
The payload structure ensures data integrity:
- Magic Bytes (PXHIDE): Identifies the image as a Pixelhide carrier.
- Version: Ensures compatibility.
- Metadata: Stores filename length, original filename, and file size.
- Encryption Data: Stores Salt and Nonce (if encryption is used).
- Payload: The actual file content (encrypted or raw).
- LSB steganography is not robust against image compression or resizing. converting the output PNG to JPEG will destroy the hidden data.
- For sensitive data, ALWAYS use the encryption feature.
This project is licensed under the Apache License 2.0. See the LICENSE file for details.
Made by Vision
Github
Portfolio