Skip to content

mstaudt/Steganofy

Repository files navigation

Steganofy

Logo Get on Google Play

DEPRECATED: this project is inactive and will be deleted in the future.

A simple, fast and open source image steganography app for Android.


Build


Features

  • Hide data into images
  • Reveal data from of images
  • Plain text and files support
  • AES-256 encryption (optional)
  • Light and dark mode

Main screen  Hide wizard input screen  Hide wizard settings screen  Reveal success screen

(Dark) Main screen  (Dark) Hide wizard input screen  (Dark) Hide wizard settings screen  (Dark) Reveal success screen


Byte Layout

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:

Byte Layout


Data format

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

Data Types

Type Description
1 Plaintext
2 File

Encryption algorithms

Identifier Description
0 No encryption
1 AES-256

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

Payload

Plaintext

The bytes of the plaintext are used as payload.

File

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

Contact

If you want to get in contact, contribute to the project or have any questions, feel free to contact me at:

mstaudt7@gmail.com

-Markus Staudt


License

Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/

About

A simple, fast and open source image steganography app for Android.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Languages