Stegano
A cross-platform command line tool for steganography, focused on performance and simplicity.
Demo

Features
- Simple and easy-to-use command line tool
- Cross-platform support (Windows, macOS and Linux)
- Support PNG Images and WAV Audio as carrier media
- Supports strong encryption with XChaCha20-Poly1305 and Argon2id
- Hides one or many files as well as simple messages
- Based on least significant bit steganography
- Backwards compatible with stegano for windows for image en-/decoding
- Memory safe by design
- Written in rust
What is steganography?
In short, the art of hiding information in something (like a book, a image, a audio or even a video).
You can find more information on my slides or checkout my talk on the rust meetup munich in june, 2020.
Install
On Linux as snap
- installation for Linux Mint
- installation for Arch Linux
TL;DR:
With cargo
To install the stegano cli, you just need to run
(--force just makes it update to the latest stegano-cli if it's already installed)
Note the binary is called stegano (without -cli)
to verify if the installation went thru, you can run which stegano that should output similar to
AUR
stegano can be installed from available AUR packages using an AUR helper. For example,
Usage
)
Subcommands
hide
)
Example with am Image PNG file
Let's illustrate how to hide a file like README.md, inside an image Base.png and save it as README.png:
The final result is then contained in the image README.png.
Pro TIP you can hide multiple files at once
here I'm using the shorthand parameters (--data, -d), (--in, -i), (--out, -o)
Hidden Feature you can use a .jpg for input and save it as .png
Example with an Audio WAV file
Example Hide short messages
Now let's assume we want to hide just a little text message in secret-text.png. So we would run:
unveil
Example unveil from an Image PNG file
Let's unveil the README.md that we've hidden (just above) in README.png
Example unveil short messages
Now let's unveil the message from above secret-text.png. So we would run:
unveil-raw
Example unveil raw data
Let's unveil the raw data of the README.md that we've hidden just above in README.png
The file README.bin contains all raw binary data unfiltered decoded by the LSB decoding algorithm.
That is for the curious people, and not so much interesting for regular usage.
stegano on the web
Contribute
To contribute to stegano-rs you can either checkout existing issues labeled with good first issue or open a new issue
and describe your problem.
Also every PR is welcome, just as a note of caution: at this very time the architecture and the API are still in flux and might change, so in any case I recommend opening an issue first to discuss a code contribution.
License
- GNU GPL v3 license
- Copyright 2019 - 2024 © Sven Kanoldt.