An image steganography tool
// Encryption
QByteArray message("secret");
QImage *image = new QImage("./images/sunset.jpg");
QImage *image_to_send = ModelPC::Encrypt(message, image, "password1");
// Decryption
QByteArray incoming_message = ModelPC::Decrypt(image_to_send, "password1"); // "secret"
PictureCrypt is a simple educational cross-platform steganography tool that hides data in images. This project is built on Qt Platform using the MVC pattern and features GUI and console interface. Project repository is available on GitHub.
Get stable binary files at latest release page Or download latest potentially unstable files:
- Exe with release (~ 22 MB)
- Zip with console (~ 21 MB)
- Exe with console (~ 19 MB)
- Binary of release (Qt not included) (~ 10 MB)
$ picturecrypt -h
Usage:
picturecrypt encrypt <image> <input file> <key> <output> [options]
picturecrypt decrypt <image> <key> <output> [options]
picturecrypt (-h | --help)
picturecrypt --version
Options:
-h --help Show this screen.
--version Show version.
-m --mode Mode of cryption.
-b Encryption bitsUsed parameter.
$ picturecrypt --version
1.4.1
$ picturecrypt encrypt original.jpg data.txt somekey result.png
$ picturecrypt decrypt result.png somekey output.txt
- 0 - Auto-detect, used for decryption, so it auto-detects (invalid at encryption as you must select the encryption type)
- 1 - v1.3, only available on versions 1.3+
- 2 - v1.4, advanced (default) encryption mode, available on versions v1.4+
Documentation generated by Doxygen
Continuous integration is fulfilled via Travis CI for Linux and AppVeyor for Windows.
This project is available in multiple languages thanks to the Qt Linguist Platform.
Available languages:
- English (default)
- Russian
- German
If you would like to translate PictureCrypt to your language here are the steps to do so:
- Install Qt and Qt Linguist with it
- Clone the project.
- Go to PictureCrypt/src/app/
- Add a filename to
TRANSLATIONS
in src/app/app.pro file. Filename must be 'picturecrypt_{your language}.ts' (e.g. 'picturecrypt_fr.ts') - Run
lupdate src.pro
, it will generate that .ts file. An error may occur: "Maybe you forgot to set your environment?" To solve it go to Project (on the left-hand side) ->(expand) Build environment -> Open terminal and runlupdate src.pro
. - Go to translations/
- Run
linguist picturecrypt_{your language}.ts
. The Qt Linguist will appear, where you can translate given text from English (there are a couple of html entries, just edit its text part). - Either go to 'File -> Compile' or run
lrelease picturecrypt_{your language}.ts
. - Add your picturecrypt_{your language}.ts to src/app/translations.qrc resource file.
- Create a pull request with your work.
- QAESEncryption by bricke (provided under unlicense)
- 'Circle Icons' by Nick Roach provided under GPL v3.0.
- 'MS Shell Dlg 2' font used and 'Montserrat' font used under the SIL Open Font License.
Questions and suggestions are welcome! Email me [email protected] or telegram me at waleko
This software is MIT licensed.
Copyright © 2021 Alexander Kovrigin