
jdvrif — Updated!
JPG छवियों के लिए स्टेग्नोग्राफ़ी उपकरण
jdvrif
jdvrif एक तेज़, उपयोग में आसान स्टेग्नोग्राफी कमांड-लाइन टूल है जो किसी भी फ़ाइल प्रकार को JPG छवि के माध्यम से छिपाने और निकालने के लिए है।
एक वेब संस्करण भी उपलब्ध है, जिसे आप CLI स्रोत कोड को डाउनलोड और संकलित करने के सुविधाजनक विकल्प के रूप में तुरंत उपयोग कर सकते हैं। वेब फ़ाइल अपलोड 20MB तक सीमित हैं।
उस भाषा में रुचि रखने वालों के लिए एक प्रायोगिक Rust पोर्ट jdvrif-rs उपलब्ध है।

डेमो छवि: "छिपने का स्थान" / पिन: 2190398302048725932
सामान्य LSB स्टेग्नोग्राफी विधि के विपरीत, जो कवर छवि के पिक्सेल के भीतर डेटा छिपाती है, jdvrif ज्यादातर डेटा को JPG छवि के एप्लिकेशन सेगमेंट (ICC, EXIF, XMP, आदि) के भीतर छिपाता है।
इसका अपवाद Reddit प्लेटफ़ॉर्म कंसील मोड (-r) है, जहाँ हम QIM स्टेग्नोग्राफी विधि (JPEG DCT-डोमेन क्वांटाइज़ेशन इंडेक्स मॉड्यूलेशन) का उपयोग करते हैं, क्योंकि यह एकमात्र भंडारण विधि है जो वर्तमान में Reddit के लिए काम करती है।
आप डिफ़ॉल्ट कंसील मोड के लिए 2GB तक किसी भी फ़ाइल प्रकार को छिपा सकते हैं, हालाँकि अन्य प्लेटफ़ॉर्म कंसील मोड और संगत साइटों (नीचे सूचीबद्ध) की अपनी बहुत छोटी आकार सीमाएँ और *अन्य आवश्यकताएँ हैं।
बढ़ी हुई भंडारण क्षमता और बेहतर सुरक्षा के लिए, आपकी एम्बेडेड डेटा फ़ाइल को libdeflate/zlib के साथ संपीड़ित किया जाता है — जब तक कि यह पहले से ही 10 MB से अधिक की संपीड़ित फ़ाइल प्रकार न हो — और libsodium क्रिप्टोग्राफ़िक लाइब्रेरी का उपयोग करके XChaCha20-Poly1305 के साथ एन्क्रिप्ट किया जाता है।
jdvrif आंशिक रूप से सुरक्षा शोधकर्ता डेविड बुकानन द्वारा लागू की गई तकनीक से लिया गया है।
संकलन और उपयोग (Linux)
$ sudo apt update
$ sudo apt install g++ cmake ninja-build util-linux libsodium-dev libturbojpeg0-dev zlib1g-dev libdeflate-dev
$ chmod +x compile_jdvrif.sh
$ ./compile_jdvrif.sh
$ sudo cp jdvrif /usr/bin
$ jdvrif
Usage: jdvrif conceal [-b] <cover_image> <secret_file>
jdvrif recover <cover_image>
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_4e87c566c.jpg (143029 bytes).
Recovery PIN: [***2166776980318349924***]
Important: Keep your PIN safe, so that you can extract the hidden file.
Complete!
$ jdvrif recover jrif_4e87c566c.jpg
PIN: *******************
Extracted hidden file: your_secret_file.doc (6165 bytes).
Complete! Please check your file.
संगत प्लेटफ़ॉर्म
******************
नोट: Bluesky अब छवियों को डिफ़ॉल्ट रूप से WEBP के रूप में सहेजता है।
छवि को JPG के रूप में सहेजने के लिए, ताकि आप jdvrif के साथ छिपे हुए डेटा को पुनर्प्राप्त कर सकें।
पहले पोस्ट में छवि पर क्लिक करके उसे खोलें, फिर छवि पर राइट-क्लिक करें। मेनू से, नए टैब में छवि खोलें चुनें।
नया टैब चुनें और एड्रेस बार के भीतर, एड्रेस के अंत में जाकर @jpg जोड़ें और एंटर दबाएँ।
छवि पर राइट-क्लिक करें और मेनू से छवि सहेजें... चुनें।
आपकी छवि अब JPG के रूप में डाउनलोड होनी चाहिए, जो अब jdvrif के साथ काम करेगी।
यदि आप Bluesky पर पोस्ट करने के लिए WEBP छवियों का उपयोग करके डेटा छिपाने के लिए एक टूल चाहते हैं, तो आप मेरे WEBP स्टेग्नोग्राफी CLI टूल wbpdv का उपयोग कर सकते हैं।
******************
पोस्टिंग आकार सीमा कवर छवि + संपीड़ित डेटा फ़ाइल के संयुक्त आकार से मापी जाती है:
● Flickr (200MB), ImgPile (100MB), ImgBB (32MB),
● PostImage (32MB), Pixelfed (15MB)।
आकार सीमा केवल संपीड़ित डेटा फ़ाइल आकार से मापी जाती है:
● Mastodon (~6MB), Tumblr (~64KB), X-Twitter (~10KB)।
उदाहरण के लिए, Mastodon के साथ, यदि आपकी कवर छवि 1MB है, तो भी आप ~6MB आकार सीमा तक डेटा फ़ाइल एम्बेड कर सकते हैं।
अन्य: Bluesky प्लेटफ़ॉर्म में कवर छवि और संपीड़ित छिपे हुए डेटा फ़ाइल के लिए अलग आकार सीमाएँ हैं:
● Bluesky (-b विकल्प)। कवर छवि अधिकतम आकार सीमा (2,000,000 बाइट्स / ~1.9MB)। आपकी संपीड़ित छिपी हुई डेटा फ़ाइल (पेलोड) अधिकतम आकार सीमा (~171KB)।
अंतिम एम्बेडेड कवर छवि (कवर छवि + छिपी हुई फ़ाइल) 2,000,000 बाइट्स (~1.9MB) से अधिक नहीं होनी चाहिए। Bluesky पर छवियाँ पोस्ट करने के लिए "create_bsky_post.py" स्क्रिप्ट आवश्यक है। इस स्क्रिप्ट के बारे में अधिक जानकारी पृष्ठ के नीचे दी गई है।
● Reddit (-r विकल्प)। जबकि Reddit प्लेटफ़ॉर्म की छवि अपलोड आकार सीमा 20MB है, कवर छवि के लिए डेटा भंडारण क्षमता बहुत छोटी है और छवि आयाम आकार पर निर्भर करती है।
उदाहरण के लिए, 1024x1024 आयाम वाली कवर छवि केवल ~6KB डेटा संग्रहीत कर सकती है, 4096x4096 आयाम वाली छवि ~109KB संग्रहीत कर सकती है, और 6324×6324 अधिकतम आयाम वाली छवि ~254KB संग्रहीत कर सकती है।
X-Twitter, Reddit और Tumblr जैसे प्लेटफ़ॉर्म के लिए, जिनकी छोटी डेटा आकार सीमाएँ हैं, आप उस डेटा पर ध्यान केंद्रित करना चाह सकते हैं जो अच्छी तरह से संपीड़ित होता है, जैसे टेक्स्ट फ़ाइलें, आदि।
https://github.com/user-attachments/assets/c8c38e6d-ea23-4d67-98d9-cebdcd82b449
https://github.com/user-attachments/assets/88aaa5f7-3272-4d0c-aa59-1a5bfe2f08dc
jdvrif मोड तर्क:
conceal - आपकी गुप्त डेटा फ़ाइल को JPG कवर छवि के भीतर संपीड़ित, एन्क्रिप्ट और एम्बेड करता है।
recover - छिपी हुई डेटा फ़ाइल को JPG कवर छवि से डिक्रिप्ट, अनकंप्रेस और निकालता है।
jdvrif conceal मोड प्लेटफ़ॉर्म विकल्प:
"-r" Reddit प्लेटफ़ॉर्म पर पोस्ट करने के लिए संगत "फ़ाइल-एम्बेडेड" JPG छवियाँ बनाने के लिए, आपको conceal मोड के साथ -r विकल्प का उपयोग करना होगा।
$ jdvrif conceal -r my_image.jpg hidden.doc
ये छवियाँ केवल Reddit पर पोस्ट करने के लिए संगत हैं। यदि किसी अन्य प्लेटफ़ॉर्म पर पोस्ट की जाती हैं, तो आपकी एम्बेडेड डेटा फ़ाइल हटा दी जाएगी।
Reddit से छवि सहेजते/डाउनलोड करते समय, सहेजने से पहले पोस्ट के भीतर छवि पर क्लिक करके उसे पूरी तरह से विस्तारित करना सुनिश्चित करें।
https://github.com/user-attachments/assets/9f1b4607-e7f1-4c5f-8929-b42c1a85bb88
"-b" Bluesky प्लेटफ़ॉर्म पर पोस्ट करने के लिए संगत "फ़ाइल-एम्बेडेड" JPG छवियाँ बनाने के लिए, आपको conceal मोड के साथ -b विकल्प का उपयोग करना होगा।
$ jdvrif conceal -b my_image.jpg hidden.doc
ये छवियाँ केवल Bluesky पर पोस्ट करने के लिए संगत हैं। यदि किसी अन्य प्लेटफ़ॉर्म पर पोस्ट की जाती हैं, तो आपकी एम्बेडेड डेटा फ़ाइल हटा दी जाएगी।
आपको Bluesky पर छवि पोस्ट करने के लिए Python स्क्रिप्ट create_bsky_post.py (रिपॉजिटरी के src/bsky फ़ोल्डर में पाई जाती है) का उपयोग करना भी आवश्यक है। यदि आप ब्राउज़र साइट या मोबाइल ऐप के माध्यम से Bluesky पर छवियाँ पोस्ट करते हैं तो यह काम नहीं करेगा।
स्क्रिप्ट का उपयोग करने के लिए, आपको अपने Bluesky खाते से एक ऐप पासवर्ड बनाना होगा।
कुछ बुनियादी उपयोग उदाहरणों के लिए src/bsky फ़ोल्डर में create_bsky_post.py स्क्रिप्ट देखें।
https://github.com/user-attachments/assets/b4c72ea7-40e3-49b0-89aa-ae2dd8ccccb9
तृतीय-पक्ष सॉफ़्टवेयर और संपत्तियाँ
मुख्य अनुप्रयोग
-
libsodium — क्रिप्टोग्राफ़िक यादृच्छिक जनरेशन, Argon2id कुंजी व्युत्पत्ति और XChaCha20-Poly1305 गुप्त स्ट्रीम। सिस्टम लाइब्रेरी के रूप में गतिशील रूप से लिंक किया गया।
लाइसेंस: ISC लाइसेंस
कॉपीराइट (c) 2013–2026 फ्रैंक डेनिस।
-
libjpeg-turbo — JPEG प्रोसेसिंग और लॉसलेस ट्रांसफ़ॉर्मेशन। सिस्टम लाइब्रेरी के रूप में गतिशील रूप से लिंक किया गया।
यह सॉफ़्टवेयर आंशिक रूप से इंडिपेंडेंट JPEG ग्रुप के कार्य पर आधारित है।
लाइसेंस: इंडिपेंडेंट JPEG ग्रुप लाइसेंस, संशोधित BSD 3-क्लॉज़ लाइसेंस, और zlib लाइसेंस।
कॉपीराइट © 1991–2020 थॉमस जी. लेन और गुइडो वोल्बेडिंग।
कॉपीराइट © 2009–2023 डी. आर. कमांडर। सर्वाधिकार सुरक्षित।
कॉपीराइट © 2015 विक्टर स्ज़ाथमारी। सर्वाधिकार सुरक्षित।
-
zlib — स्ट्रीमिंग zlib संपीड़न और विघटन। सिस्टम लाइब्रेरी के रूप में गतिशील रूप से लिंक किया गया।
लाइसेंस: zlib लाइसेंस
कॉपीराइट (C) 1995–2026 जीन-लूप गैली और मार्क एडलर।
-
libdeflate — तेज़ पूर्ण-बफ़र zlib-प्रारूप संपीड़न। सिस्टम लाइब्रेरी के रूप में गतिशील रूप से लिंक किया गया।
लाइसेंस: MIT
कॉपीराइट 2016 एरिक बिगर्स।
कॉपीराइट 2024 Google LLC।
शामिल कोड और संपत्तियाँ
-
base64simd — AVX2 Base64 एन्कोडर वोज्शिएक मुला के वेक्टर Base64 कार्यान्वयन से अनुकूलित है।
लाइसेंस: BSD 2-क्लॉज़
कॉपीराइट (c) 2015–2018, वोज्शिएक मुला। सर्वाधिकार सुरक्षित।
-
कॉम्पैक्ट ICC प्रोफ़ाइल — एम्बेडेड Adobe- संगत ICC प्रोफ़ाइल।
लाइसेंस: CC0 1.0 यूनिवर्सल
वैकल्पिक Bluesky पोस्टिंग सहायक
-
ब्रायन न्यूबोल्ड / ATProto हैकर कुकबुक — create_bsky_post.py — फोर्क किए गए Bluesky पोस्टिंग सहायक (src/bsky/bsky_post.py) का आधार। संदर्भ के लिए कुकबुक प्रति देखें
लाइसेंस: CC0 1.0 यूनिवर्सल।
-
Requests — HTTP और Bluesky API अनुरोध।
लाइसेंस: Apache 2.0 / NOTICE
कॉपीराइट 2019 केनेथ रीट्ज़।
-
ब्यूटीफुल सूप 4 — HTML और ओपन ग्राफ़ मेटाडेटा पार्सिंग।
लाइसेंस: MIT
कॉपीराइट (c) लियोनार्ड रिचर्डसन।
-
Pillow — छवि सत्यापन, आयाम और पहलू-अनुपात हैंडलिंग।
लाइसेंस: MIT-CMU
PIL कॉपीराइट © 1997–2011 सीक्रेट लैब्स AB और © 1995–2011 फ्रेड्रिक लुंड और योगदानकर्ता।
Pillow कॉपीराइट © 2010 जेफरी "एलेक्स" क्लार्क और योगदानकर्ता।