جدول المحتويات:

هذه PNG هي مقصورة سرية: 4 خطوات
هذه PNG هي مقصورة سرية: 4 خطوات

فيديو: هذه PNG هي مقصورة سرية: 4 خطوات

فيديو: هذه PNG هي مقصورة سرية: 4 خطوات
فيديو: How to do a Triangle Pass 2024, شهر نوفمبر
Anonim
هذه هي مقصورة سرية
هذه هي مقصورة سرية
هذه هي مقصورة سرية
هذه هي مقصورة سرية

التحدي الخاص بك ، عزيزي القارئ ، هو معرفة الرسالة المخفية في صورة output-p.webp

تبدو الصورتان هنا متطابقتين لكنهما ليسا. هذان هما صور greenman-p.webp

هذه التعليمات مستوحاة من فيديو يوتيوب رائع. بعد مشاهدة هذا الفيديو في وقت متأخر من الليل ذات يوم وكافح من أجل التفكير في محاضرة رائعة وامتحان نصفي لفصل برمجة Java متقدم ، وُلد هذا المشروع. الصور أعلاه ، إلى جانب الكود الموضح في هذه التعليمات ، مجانية على Github.

اللوازم

ستحتاج إلى جهاز كمبيوتر وسيتعين عليك معرفة كيفية تجميع وتشغيل برنامج Java. هذا البرنامج عبارة عن ملفين قصيرين فقط وستحتاج إلى تشغيله في سطر الأوامر.

الخطوة 1: ما هو علم إخفاء المعلومات

يجب أن تشاهد فيديو youtube الذي ربطته في الخطوة السابقة ، ولكن هذا هو الملخص:

إذا كنت بحاجة إلى إخفاء رسالة سرية إلى صديق ، فإن الطريقة الرائعة للقيام بذلك هي باستخدام Steganography. فكرة إخفاء الصور بسيطة ؛ تتكون صور الكمبيوتر من وحدات البكسل ، وكل بكسل عبارة عن مزيج من الأحمر والأخضر والأزرق. في العديد من تنسيقات صور الكمبيوتر ، يتم التعبير عن كميات الأحمر والأخضر والأزرق في كل بكسل كقيم من 0-127. لذلك ، على سبيل المثال ، سيكون للبكسل الأحمر جدًا قيمة حمراء قدرها 127 وقيم خضراء وزرقاء صفرية. الحيلة هي: كثافة حمراء 126 لا يمكن تمييزها عن كثافة حمراء 127 (لعين بشرية). وبالتالي من خلال العبث بعلامة زائد أو ناقص واحد في كل بكسل أحمر ، يمكننا إخفاء البتات بالبكسل. إذا وجدنا طريقة مخادعة لجمع البتات احتياطيًا ، فيمكننا استرداد البيانات التي تسللناها إلى الصورة!

كن مبدعا! يمكن عمل Steganography مع أي وسائط رقمية! يمكنك اللعب بالبتات في ملفات الموسيقى أو الفيديو على سبيل المثال ، ولكن هذا يتطلب منك إجراء المزيد من البحث خارج نطاق هذه التعليمات.

الخطوة 2: كيف يتم تشفير النص على أجهزة الكمبيوتر

كيف يتم تشفير النص على أجهزة الكمبيوتر
كيف يتم تشفير النص على أجهزة الكمبيوتر

ما يلي هنا قد يتطلب درجة في علوم الكمبيوتر أو الكثير من شغف الهواة لفهمه. تخزن أجهزة الكمبيوتر البيانات في وحدات بت مثل 1 و 0. عادةً ما يتم تجميع هذه القيم 1 و 0 في مجموعات من 8 ويشار إليها باسم "بايت". كما هو موضح هنا وهنا ، هناك طرق قليلة يمكننا من خلالها إخبار الكمبيوتر بتفسير البايت كنص. للحصول على أقصى استفادة من هذه المحاضرة / التعليمات حول إخفاء المعلومات ، يجب أن تفهم بشكل أو بآخر ASCII و UTF8. هاتان طريقتان شائعتان لترميز بيانات اللغة في سلسلة من البايت.

بمجرد حصولك على فكرة حول هذا الموضوع ، ستفهم هذا: في ASCII و UTF8 ، يتم تمثيل كلمة "the" بالبايتات التالية (في سداسي عشري) 0x74 0x68 0x65. في النظام الثنائي ، هذه البايتات هي: 01110100b 01101000b 01101101b

علاوة على ذلك ، ستفهم أنه في UTF8 ، يتم تمثيل Grinning Face Emoji بالبايتات التالية (في سداسي عشري) 0xF0 0x9F 0x98 0x80. في النظام الثنائي ، هذه البايتات هي 11110000b 10011111b 10011000b 10000000b.

على أي حال ، سترى في لقطة الشاشة المرفقة أن جهاز الكمبيوتر الخاص بي يقوم بشيء بهذه البايتات. لقد أبرزتهم في إخراج البرنامج بأسهم و "نظرة!" كبيرة.

الخطوة الثالثة: كيف يعمل البرنامج

تجميع البرنامج من جيثب سهل. احصل على الريبو المعروض على الصفحة الأولى هنا وبعد ذلك

يتم تشغيل البرنامج على هذا النحو من سطر الأوامر: java Main input-p.webp

في الأمثلة المرفقة ، سترى أنني قمت بتشغيل java Main greenman-p.webp

ستفعل نفس الشيء.

إذا نظرت إلى Main.java ، فسترى أن هذا ما يحدث:

  1. يقرأ البرنامج الصورة في مصفوفة ثنائية الأبعاد
  2. يحول البرنامج الرسالة التي قدمتها إلى مصفوفة بايت (بايت )
  3. ثم يستخدم البرنامج فئة MessageHider لإخفاء بايت الرسالة في مصفوفة الصور.
  4. يقوم البرنامج بعد ذلك بكتابة مجموعة الصور ثنائية الأبعاد إلى ملف (output.png) مع وجود البيانات المخفية بداخله. إذا نظرت إلى هذه الصورة لا يمكن تمييزها عن الصورة الأصلية
  5. يقرأ البرنامج بعد ذلك output-p.webp" />

تعمل الشفرة إلى حد كبير كما نتوقع.

الخطوة 4: الخاتمة

لذلك أعطيتك بعض كود العمل ، وإثباتًا على أنها تعمل على شكل صورة ، وبعض ملاحظات المحاضرة التي أعطيها لطلاب جامعتي. كما أعطيتك تحديا! لقد أمضيت بضع ساعات في كتابة الكود وإعداد ملاحظات المحاضرة ، لذلك أنا آسف أن هذه التعليمات لا تحتوي على العديد من الصور. إذا كنت تعتقد أن علم إخفاء المعلومات مثير للاهتمام ، يرجى قبول التحدي الخاص بي!

موصى به: