UTILS.
100% ब्राउज़र में
🕵️

इमेज स्टेगनोग्राफ़ी टूल

LSB स्टेगनोग्राफ़ी का उपयोग करके किसी छवि के भीतर गुप्त पाठ छिपाएँ, या एक छिपा संदेश प्रकट करें। 100% आपके ब्राउज़र में चलता है, कुछ भी अपलोड नहीं होता।

पाठ छिपाने के लिए एक छवि छोड़ें या चुनें

इस टूल के बारे में

यह टूल एक साधारण छवि के भीतर एक गुप्त पाठ संदेश छिपाता है और बाद में उसे वापस निकालता है, least-significant-bit (LSB) स्टेगनोग्राफ़ी का उपयोग करके। सब कुछ आपके ब्राउज़र में एक HTML कैनवास पर स्थानीय रूप से होता है: तस्वीर और आपका संदेश कभी आपके डिवाइस से बाहर नहीं जाते और कुछ भी किसी सर्वर पर अपलोड नहीं होता।

LSB स्टेगनोग्राफ़ी प्रत्येक रंग चैनल के least-significant bit को अधिलेखित करके काम करती है। छवि को एक कैनवास पर खींचा जाता है और उसके कच्चे पिक्सेल पढ़े जाते हैं; संदेश को UTF-8 बाइट्स में बदला जाता है और, बिट-दर-बिट, वे बिट क्रमागत पिक्सेल के लाल, हरे और नीले चैनलों के सबसे निचले बिट को प्रतिस्थापित करते हैं (दृश्य विकृतियों से बचने के लिए अल्फा/पारदर्शिता चैनल छोड़ दिया जाता है)। केवल सबसे निचले बिट को बदलने से प्रत्येक चैनल 255 में से अधिकतम 1 खिसकता है, इसलिए परिणाम आँख को समान दिखता है। पहले एक 32-बिट big-endian लंबाई हेडर लिखा जाता है ताकि डिकोडर को ठीक-ठीक पता हो कि कितने संदेश बाइट्स आगे हैं। प्रत्येक पिक्सेल 3 बिट रखता है, इसलिए एक छवि लगभग floor(width x height x 3 / 8) बाइट्स रखती है, 4 हेडर बाइट्स घटाकर।

एक संदेश छिपाने के लिए, "संदेश छिपाएँ" चुनें, एक छवि चुनें, अपना पाठ टाइप करें और एक PNG सहेजने के लिए एनकोड और डाउनलोड पर क्लिक करें। इसे पुनर्प्राप्त करने के लिए, "संदेश प्रकट करें" पर स्विच करें और एक स्टेगो PNG खोलें; छिपा पाठ स्वचालित रूप से डिकोड हो जाता है। आउटपुट PNG होना चाहिए क्योंकि यह हानिरहित (lossless) है — एक JPEG पिक्सेल को पुनः संपीड़ित करता है और नाज़ुक least-significant बिट्स को मिटा देगा, जिससे संदेश नष्ट हो जाएगा।

अक्सर पूछे जाने वाले प्रश्न

क्या यह सुरक्षित या एन्क्रिप्टेड है?
नहीं। LSB स्टेगनोग्राफ़ी अस्पष्टता है, एन्क्रिप्शन नहीं — यह छिपाती है कि कोई संदेश मौजूद है पर सामग्री की सुरक्षा नहीं करती। जो कोई भी किसी स्टेगो छवि पर संदेह करता है और उसी विधि का उपयोग करता है वह इसे पढ़ सकता है। वास्तविक गोपनीयता के लिए, पहले अपना पाठ एन्क्रिप्ट करें (उदाहरण के लिए किसी AES टूल से) और फिर सिफरटेक्स्ट छिपाएँ।
यह JPEG नहीं बल्कि PNG क्यों निर्यात करता है?
संदेश पिक्सेल के least-significant बिट्स में रहता है, जो केवल हानिरहित (lossless) हैं। PNG हर बिट को ठीक-ठीक संरक्षित करता है। JPEG हानियुक्त (lossy) है और छवि को पुनः संपीड़ित करता है, उन निचले बिट्स को बदल देता है और छिपे डेटा को नष्ट कर देता है, इसलिए यह टूल हमेशा PNG सहेजता है।
मैं एक छवि में कितना पाठ छिपा सकता हूँ?
लगभग floor(width x height x 3 / 8) बाइट्स, लंबाई हेडर के लिए आरक्षित 4 बाइट्स घटाकर। एक 1000 x 1000 छवि लगभग 375,000 बाइट्स रखती है। जब आप कोई छवि लोड करते हैं तो टूल सटीक क्षमता दिखाता है और यदि आपका संदेश बहुत बड़ा है तो चेतावनी देता है।
क्या यह इमोजी और अन्य भाषाओं के साथ काम करता है?
हाँ। संदेश UTF-8 के रूप में एनकोड किया जाता है, इसलिए इमोजी, उच्चारण चिह्न और गैर-लैटिन लिपियाँ ठीक-ठीक राउंड-ट्रिप करती हैं। ध्यान दें कि मल्टी-बाइट वर्ण सादे ASCII की तुलना में छवि की अधिक क्षमता का उपयोग करते हैं।

और टूल