A simple, fast and open source image steganography app for Android.
- Hide data into images
- Reveal data from of images
- Plain text and files support
- AES-256 encryption (optional)
- Light and dark mode
The data to be hidden is written per bit in the pixels of the image. The two least significant bits of an image byte are replaced with the bits of the data to be hidden. This way the image is not noticeably changed. To hide one byte of data, 4 bytes of image data is required:
The hidden data has the following format:
<Version><Type><Encryption algorithm><Payload length><Payload>
Field | Field length | Description |
---|---|---|
Version | 1 Byte |
The file format version identifier |
Type | 4 Bits |
Type of the payload |
Encryption algorithm | 4 Bits |
Identifier of the encryption algorithm used for payload encryption |
Payload length | 4 Bytes |
Length of the payload in bytes |
Payload | n Bytes |
Payload depending on type |
Type | Description |
---|---|
1 |
Plaintext |
2 |
File |
Identifier | Description |
---|---|
0 |
No encryption |
1 |
AES-256 |
Payload encryption using AES/GCM/NoPadding
with
PBKDF2WithHmacSHA256
. A random salt and IV is generated upon encryption and added as prefix to the
ciphertext. Using this type of payload encryption will increase the size of the payload:
<IV><Salt><Ciphertext>
Field | Field length | Description |
---|---|---|
IV | 12 Bytes |
The initialization vector used for GCM |
Salt | 16 Bytes |
Salt used for PBKDF2 |
Cipher text | n Bytes |
Encrypted ciphertext |
The bytes of the plaintext are used as payload.
File payloads have the following format:
<File mime type length><File mime type><File content>
Field | Field length | Description |
---|---|---|
File mime type length | 4 Bytes |
Length of the file mimie type in bytes |
File mime type | n Bytes |
File mime type (i.e. "image/jpeg") |
File content | File extension length - payload length |
Remaining bytes of payload |
If you want to get in contact, contribute to the project or have any questions, feel free to contact me at:
-Markus Staudt
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/