विषयसूची:

यह पीएनजी है सीक्रेट कम्पार्टमेंट: 4 कदम
यह पीएनजी है सीक्रेट कम्पार्टमेंट: 4 कदम

वीडियो: यह पीएनजी है सीक्रेट कम्पार्टमेंट: 4 कदम

वीडियो: यह पीएनजी है सीक्रेट कम्पार्टमेंट: 4 कदम
वीडियो: चाणक्य नीति:पैसा कमाना है तो कभी किसी को मत बताना|Chanakya Neeti full in Hindi|Real Life Investment 2024, नवंबर
Anonim
यह पीएनजी है सीक्रेट कम्पार्टमेंट
यह पीएनजी है सीक्रेट कम्पार्टमेंट
यह पीएनजी है सीक्रेट कम्पार्टमेंट
यह पीएनजी है सीक्रेट कम्पार्टमेंट

आपकी चुनौती, प्रिय पाठक, यह पता लगाना है कि आउटपुट.पीएनजी छवि में कौन सा संदेश छिपा है जो मैंने आपके लिए जीथब पर डाला है। संदेश निकालने के लिए आप वहां MessageHider कोड का उपयोग कर सकते हैं। यदि आप भ्रमित हैं, तो कृपया नीचे टिप्पणी करें और मैं उत्तर पाने में आपकी सहायता करूंगा! आप अभी पढ़ना बंद भी कर सकते हैं, बस जीथब पर जाएं, कोड प्राप्त करें, और स्टेग्नोग्राफ़ी करना शुरू करें। बहुत हो गया, लेकिन कृपया बने रहें और मैं आपको और बताऊंगा।

यहां दो तस्वीरें समान दिखती हैं लेकिन वे नहीं हैं ये ग्रीनमैन.पीएनजी और आउटपुट.पीएनजी छवियां हैं जिन्हें मैंने ऊपर लिंक किया है। छवियों में से एक हरे आदमी की सिर्फ एक उबाऊ तस्वीर है। दूसरे में एक संदेश होता है, जो छवि के पिक्सेल में छिपा होता है।

यह निर्देशयोग्य एक महान youtube वीडियो से प्रेरित है। एक दिन देर रात इस वीडियो को देखने और एक उन्नत जावा प्रोग्रामिंग कक्षा के लिए एक अच्छे व्याख्यान और मध्यावधि परीक्षा के बारे में सोचने के लिए संघर्ष करने के बाद, इस परियोजना का जन्म हुआ। ऊपर दिए गए चित्र, इस निर्देश में वर्णित कोड के साथ, जीथब पर मुफ्त हैं।

आपूर्ति

आपको एक कंप्यूटर की आवश्यकता होगी और आपको यह जानना होगा कि जावा प्रोग्राम को कैसे संकलित और चलाना है। यह प्रोग्राम सिर्फ दो छोटी फाइलें हैं और आपको इसे कमांड लाइन पर चलाना होगा।

चरण 1: स्टेग्नोग्राफ़ी क्या है

आपको मेरे द्वारा पिछले चरण में लिंक किया गया youtube वीडियो देखना चाहिए, लेकिन यहाँ सारांश है:

यदि आपको किसी मित्र को गुप्त संदेश छिपाने की आवश्यकता है, तो ऐसा करने का एक अच्छा तरीका स्टेग्नोग्राफ़ी है। छवि स्टेग्नोग्राफ़ी का विचार सरल है; कंप्यूटर चित्र पिक्सेल से बने होते हैं, और प्रत्येक पिक्सेल लाल, हरे और नीले रंग का संयोजन होता है। कई कंप्यूटर छवि प्रारूपों में प्रत्येक पिक्सेल में लाल, हरे और नीले रंग की मात्रा को 0-127 से मान के रूप में व्यक्त किया जाता है। इसलिए, उदाहरण के लिए, एक बहुत ही लाल पिक्सेल में 127 का लाल मान और शून्य का हरा और नीला मान होगा। चाल यह है: १२६ की लाल तीव्रता १२७ की लाल तीव्रता (मानव आँख के लिए) से अप्रभेद्य है। और इसलिए प्रत्येक लाल पिक्सेल में प्लस या माइनस एक के साथ फ़िदा होकर हम बिट्स को पिक्सेल में छिपा सकते हैं। यदि हम बिट्स को वापस इकट्ठा करने का एक गुप्त तरीका ढूंढते हैं, तो हम उस डेटा को पुनः प्राप्त कर सकते हैं जिसे हमने छवि में छिपाया था!

रचनात्मक बनो! स्टेग्नोग्राफ़ी किसी भी डिजिटल मीडिया से की जा सकती है! उदाहरण के लिए आप संगीत या वीडियो फ़ाइलों में बिट्स के साथ खेल सकते हैं, लेकिन इसके लिए आपको इस निर्देश के दायरे से बाहर और अधिक शोध करने की आवश्यकता है।

चरण 2: कंप्यूटर पर टेक्स्ट कैसे एन्कोड किया जाता है

कंप्यूटर पर टेक्स्ट कैसे एन्कोड किया जाता है
कंप्यूटर पर टेक्स्ट कैसे एन्कोड किया जाता है

यहां जो कुछ भी होता है, उसे समझने के लिए सीएस में डिग्री या शौक़ीन जुनून की आवश्यकता हो सकती है। कंप्यूटर डेटा को बिट्स में 1s और 0s के रूप में स्टोर करते हैं। इन 1s और 0s को आम तौर पर 8 के बंच में समूहीकृत किया जाता है और इन्हें "बाइट्स" कहा जाता है। जैसा कि यहां बताया गया है और यहां कुछ तरीके हैं जिनसे हम कंप्यूटर को बाइट्स को टेक्स्ट के रूप में व्याख्या करने के लिए कह सकते हैं। इस स्टेग्नोग्राफ़ी व्याख्यान/निर्देश का अधिकतम लाभ उठाने के लिए आपको कमोबेश ASCII और UTF8 को समझने की आवश्यकता है। बाइट्स की श्रृंखला में भाषा डेटा को एन्कोड करने के ये दो सामान्य तरीके हैं।

एक बार जब आप इस विषय के बारे में एक विचार प्राप्त कर लेंगे तो आप इसे समझेंगे: ASCII और UTF8 में "द" शब्द निम्नलिखित बाइट्स (हेक्स में) 0x74 0x68 0x65 द्वारा दर्शाया गया है। बाइनरी में, ये बाइट्स हैं: 01110100b 01101000b 01101101b

इसके अलावा, आप समझेंगे कि UTF8 में मुस्कुराते हुए चेहरे वाले इमोजी को निम्नलिखित बाइट्स (हेक्स में) 0xF0 0x9F 0x98 0x80 द्वारा दर्शाया जाता है। बाइनरी में ये बाइट 11110000b 10011111b 10011000b 10000000b हैं।

किसी भी घटना में आप संलग्न स्क्रीनशॉट में देखेंगे कि मेरा कंप्यूटर इन बाइट्स के साथ कुछ कर रहा है। मैंने उन्हें प्रोग्राम आउटपुट में तीरों और एक बड़े "लुक!" के साथ हाइलाइट किया है।

चरण 3: कार्यक्रम कैसे काम करता है

जीथब से प्रोग्राम को कंपाइल करना आसान है। यहां पहले पन्ने पर दिखाए गए रेपो प्राप्त करें और फिर

प्रोग्राम कमांड लाइन से इस तरह चलाया जाता है: जावा मुख्य इनपुट.पीएनजी "संदेश मैं छिपाना चाहता हूं"

संलग्न उदाहरणों में आप देखेंगे कि मैंने java Main Greenman-p.webp

आप वही काम करेंगे।

यदि आप Main.java देखते हैं तो आप देखेंगे कि ऐसा होता है:

  1. कार्यक्रम छवि को 2D सरणी में पढ़ता है
  2. प्रोग्राम आपके द्वारा दिए गए संदेश को बाइट सरणी में बदल देता है (बाइट )
  3. प्रोग्राम तब छवि सरणी में संदेश बाइट्स को छिपाने के लिए MessageHider क्लास का उपयोग करता है।
  4. प्रोग्राम तब छवि 2d सरणी को एक फ़ाइल (output.png) में छुपा डेटा के साथ लिखता है। यदि आप इस छवि को देखते हैं तो यह मूल से अप्रभेद्य है
  5. प्रोग्राम तब output-p.webp" />

जैसा कि हम उम्मीद करते हैं, कोड बहुत अधिक काम करता है।

चरण 4: निष्कर्ष

इसलिए मैंने आपको कुछ वर्किंग कोड, सबूत दिया है कि यह एक छवि के रूप में काम करता है, और कुछ व्याख्यान नोट्स जो मैं अपने विश्वविद्यालय के छात्रों को देता हूं। मैंने आपको एक चुनौती भी दी थी! मैंने कोड लिखने और व्याख्यान नोट्स तैयार करने में कुछ घंटे बिताए, इसलिए मुझे खेद है कि इस निर्देशयोग्य में कई चित्र नहीं हैं। अगर आपको लगता है कि स्टेग्नोग्राफ़ी दिलचस्प है तो कृपया मेरी चुनौती स्वीकार करें!

सिफारिश की: