#png #reveal #utf-8 #steganography #conceal

bin+lib stega

A simple tool and library to conceal and reveal UTF-8 encoded data within PNG images

1 unstable release

0.1.0 Sep 25, 2022

#5 in #reveal

36 downloads per month

MIT/Apache

90KB
516 lines

STEGA

crates.io license

A simple tool and library to conceal and reveal UTF-8 encoded data within PNG images.

Disclaimer

This tool and/or library does not guarantee the confidentiality of the data concealed in the resulting carrier images. Use this crate under your own risk.

Library

Consult the documentation for more information.

Installation

You must install Rust on your system for any of the next installation methods to work:

From crates.io

$ cargo install stega

From GitHub

$ cargo install --git https://github.com/septum/stega

From source

$ git clone https://github.com/septum/stega.git
$ cd stega
$ cargo install --path .

Usage

STEGA has two subcommands available:

Conceal

Using this subcommand will conceal UTF-8 encoded data into a PNG image:

$ stega conceal <IMAGE_PATH> [DATA]

On success, it will save the data-concealed PNG image in the same location as the the original image with the filename carrier.png, overwriting an already existing file.

Arguments

  • <IMAGE_PATH>: Valid PNG image path
  • [DATA]: Optional UTF-8 encoded text argument (with a fallback through STDIN)

Examples

$ stega conceal ferris.png "🦀"
$ cat hello_world.txt | stega conceal image.png

Reveal

Using this subcommand will reveal UTF-8 encoded data concealed in a PNG image:

$ stega reveal <IMAGE_PATH>

On success, it will print the data to STDOUT.

Arguments

  • <IMAGE_PATH>: Valid PNG image path

Examples

$ stega reveal carrier.png
$ stega reveal carrier.png > data.txt

License

This project is dual-licensed under either:

at your option.

Contributing

Contributions are very much welcome! If you find a bug, want a new feature or see an improvement opportunity, please open an issue or submit a PR.

Dependencies

~13MB
~89K SLoC