Technology

jdvrif – hide files within a JPG cover image

Last Updated on March 4, 2026

jdvrif is a fast, easy-to-use steganography command-line tool for concealing and extracting any file type via a JPG image.

There is also a Web edition which you can use immediately, as a convenient alternative to downloading and compiling the CLI source code.

For increased storage capacity and better security, your concealed data file is compressed with zlib and encrypted using the libsodium cryptographic library.

Supported platforms and data size limits:

You can conceal any file type up to 2GB*, although compatible sites (listed below) have their own much smaller size limits and other requirements.

Flickr (200MB), ImgPile (100MB), ImgBB (32MB),
PostImage (32MB), Reddit (20MB | -r option),
Pixelfed (15MB), Mastodon (~6MB), Bluesky (171KB | -b option),
Tumblr (~64KB), X-Twitter (~10KB).

—–

Compile (Linux)

Note: Compiler support for C++23 required.

$ sudo apt install libsodium-dev libturbojpeg0-dev
$ chmod +x compile_jdvrif.sh
$ ./compile_jdvrif.sh
$ sudo cp jdvrif /usr/bin

—–

Usage (Linux)

$ jdvrif

Usage: jdvrif conceal [-b|-r]
jdvrif recover
jdvrif –info

$ jdvrif conceal your_cover_image.jpg your_secret_file.doc

Platform compatibility for output image:-

✓ X-Twitter
✓ Tumblr
✓ Mastodon
✓ Pixelfed
✓ PostImage
✓ ImgBB
✓ ImgPile
✓ Flickr

Saved “file-embedded” JPG image: jrif_129462.jpg (143029 bytes).

Recovery PIN: [***2166776980318349924***]

Important: Keep your PIN safe, so that you can extract the hidden file.

Complete!

$ jdvrif recover jrif_129462.jpg

PIN: *******************

Extracted hidden file: your_secret_file.doc (6165 bytes).

Complete! Please check your file.

——-

jdvrif mode arguments:

conceal – Compresses, encrypts and embeds your secret data file within a JPG cover image.
recover – Decrypts, uncompresses and extracts the concealed data file from a JPG cover image.

jdvrif conceal mode platform options:

“-b” To create compatible “file-embedded” JPG images for posting on the Bluesky platform, you must use the -b option with conceal mode.

$ jdvrif conceal -b my_image.jpg hidden.doc

You must use the Python script “bsky_post.py” (found in the repo src folder) to post the image to Bluesky. It will not work if you post images to Bluesky via the browser site or mobile app.

To use the script, you will need to create an app password (https://bsky.app/settings/app-passwords) from your Bluesky account.

Standard image post example to your bsky profile:

$ python3 bsky_post.py –handle you.bsky.social –password xxxx-xxxx-xxxx-xxxx –image your_image.jpg –alt-text “alt-text here (optional)” “standard post text here (required)”

“-r” To create compatible “file-embedded” JPG images for posting on the Reddit platform, you must use the -r option with conceal mode.

$ jdvrif conceal -r my_image.jpg secret.mp3

From the Reddit site, select “Create Post” followed by “Images & Video” tab, to attach and post your JPG image.

To correctly download images from Reddit, click the image in the post to fully expand it, before saving.

There is also a Rust port of jdvrif.

This is free and open source software.

Website: github.com/CleasbyCode/jdvrif
Support:
Developer: Nicholas Cleasby
License: MIT License

jdvrif is written in C++. Learn C++ with our recommended free books and free tutorials.


Related Software

Steganography Tools
OpenStegoJava based tool to hide secret data in image files
stegifyTool written in Go for LSB steganography
SteganoSupports hiding data in PNG images via LSB encoding
SnowWhitespace steganography program
StegosuiteSteganography tool which lets hide information in image files
jdvrifHide files within a JPG cover image
WavstegUses least significant bit steganography to hide a file in .wavs
SteghideUses an algorithm which is undetectable by color-frequency tests
SteganorouteSend steganographed text messages to mtr with fake hops in the network
StegoshareJava based steganography tool
snowdropText watermarking and watermark recovery
OutGuessUniversal steganographic tool
RooksAdaptive steganography toolkit
StegCrackerSteganography brute-force utility to uncover hidden data inside files

Read our verdict in the software roundup.


Best Free and Open Source Software Explore our comprehensive directory of recommended free and open source software. Our carefully curated collection spans every major software category.

This directory is part of our ongoing series of informative articles for Linux enthusiasts. It features hundreds of detailed reviews, along with open source alternatives to proprietary solutions from major corporations such as Google, Microsoft, Apple, Adobe, IBM, Cisco, Oracle, and Autodesk.

You’ll also find interesting projects to try, hardware coverage, free programming books and tutorials, and much more.

Discovered a useful open source Linux program that we haven’t covered yet? Let us know by completing this form.
Subscribe
Notify of
guest
4 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Nick.
Nick.
1 year ago

./jdvin

Usage: jdvin [-r] <cover_image> <data_file>
     jdvin –info

./jdvout

Usage: jdvout <file_embedded_image>
     jdvout –info

Program only support JPG, any mention of PNG in the article is a typo.