#secret #image #steganography #picture #lsb

app piss

PISS (Picture Secret Steganography) is a command line tool to encode/decode secrets into/from image files

3 releases

0.1.2 Mar 23, 2020
0.1.1 Mar 23, 2020
0.1.0 Mar 23, 2020

#760 in Math

MIT/Apache

245KB
574 lines

PISS

Rust Crates Docs Codecov License

PISS (Picture Secret Steganography) is a command line tool to encode/decode secrets into/from image files using LSB steganography.

Run piss --help for usage.

Installation

cargo install piss

Usage examples:

Encode a secret into an image

piss encode samples/the-matrix.jpg samples/secret.txt samples/the-matrix-reloaded.png

Original image:

alt text

Image with secret:

alt text

Recover secret from image:

piss decode samples/the-matrix-reloaded.png samples/secret-reloaded.txt

Miscelaneous

By default, PISS uses 2 bits per image byte to encode the secret, you can change this value if desired:

piss -b 4 encode samples/the-matrix.jpg samples/secret.txt samples/the-matrix-reloaded.png

Just remember to decode using the same number of bits, otherwise the output will be garbage:

piss -b 4 decode samples/the-matrix-reloaded.png samples/secret-reloaded.txt

Important note

It is not recommended to encode secrets and save the output as .jpg as compression is performed and the secret is lost.

Features

Supports from 1 to 8 bits secret encoding

The user can specify the number of bits of the secret to use per image byte

Change between image formats

It is possible to convert the image format during encoding, just set a different extension for the output.

Contributing

If you find a vulnerability, bug or would like a new feature, open a new issue.

To introduce your changes into the codebase, submit a Pull Request.

Many thanks!

License

PISS is distributed under the terms of both the MIT license and the Apache License (Version 2.0).

See LICENSE-APACHE and LICENSE-MIT, and COPYRIGHT for details.

Dependencies

~16MB
~107K SLoC