جدول المحتويات:
- اللوازم
- الخطوة 1: ما هو علم إخفاء المعلومات
- الخطوة 2: كيف يتم تشفير النص على أجهزة الكمبيوتر
- الخطوة الثالثة: كيف يعمل البرنامج
- الخطوة 4: الخاتمة
فيديو: هذه PNG هي مقصورة سرية: 4 خطوات
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-31 10:16
التحدي الخاص بك ، عزيزي القارئ ، هو معرفة الرسالة المخفية في صورة 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 ، فسترى أن هذا ما يحدث:
- يقرأ البرنامج الصورة في مصفوفة ثنائية الأبعاد
- يحول البرنامج الرسالة التي قدمتها إلى مصفوفة بايت (بايت )
- ثم يستخدم البرنامج فئة MessageHider لإخفاء بايت الرسالة في مصفوفة الصور.
- يقوم البرنامج بعد ذلك بكتابة مجموعة الصور ثنائية الأبعاد إلى ملف (output.png) مع وجود البيانات المخفية بداخله. إذا نظرت إلى هذه الصورة لا يمكن تمييزها عن الصورة الأصلية
- يقرأ البرنامج بعد ذلك output-p.webp" />
تعمل الشفرة إلى حد كبير كما نتوقع.
الخطوة 4: الخاتمة
لذلك أعطيتك بعض كود العمل ، وإثباتًا على أنها تعمل على شكل صورة ، وبعض ملاحظات المحاضرة التي أعطيها لطلاب جامعتي. كما أعطيتك تحديا! لقد أمضيت بضع ساعات في كتابة الكود وإعداد ملاحظات المحاضرة ، لذلك أنا آسف أن هذه التعليمات لا تحتوي على العديد من الصور. إذا كنت تعتقد أن علم إخفاء المعلومات مثير للاهتمام ، يرجى قبول التحدي الخاص بي!
موصى به:
استخدم Fusion لصنع هذه الأداة الخشبية: 4 خطوات
استخدم Fusion لصنع هذه الأداة الخشبية!: هذا هو أحد أبسط المشاريع التي قمت بها باستخدام Fusion 360 لمساعدة المبتدئين على البدء في البرنامج. يعرض بعض الوظائف الأساسية للبرنامج ومن السهل جدًا أن يستغرق الكثير من الوقت. البرامج المطلوبة: Fusion 360 من Autodesk المتطلبات المسبقة
مرآة للتعرف على الوجه مع مقصورة سرية: 15 خطوة (بالصور)
مرآة التعرف على الوجه مع مقصورة سرية: لطالما كنت مفتونًا بالمقصورات السرية الإبداعية دائمًا المستخدمة في القصص والأفلام وما شابه. لذلك ، عندما رأيت مسابقة المقصورة السرية ، قررت أن أجرب الفكرة بنفسي وأن أصنع مرآة عادية المظهر تفتح
اصنع سيارتك ذاتية القيادة - (هذه التعليمات قيد التنفيذ): 7 خطوات
قم ببناء سيارتك ذاتية القيادة - (هذه التعليمات قيد التنفيذ): مرحبًا ، إذا ألقيت نظرة على Instructable الأخرى الخاصة بي على Drive Robot مع Remote USB Gamepad ، فإن هذا المشروع مشابه ، ولكن على نطاق أصغر. يمكنك أيضًا متابعة أو الحصول على بعض المساعدة أو الإلهام من الروبوتات أو التعرف على الصوت محليًا أو
حافظة كتاب سرية لـ Raspberry Pi: 5 خطوات (مع صور)
Secret Book Case for Raspberry Pi: سنقوم اليوم بصنع حافظة لتوت العليق الخاص بك يشبه الكتاب تمامًا. بالنسبة إلى Instructable ، ستحتاج إلى: Raspberry Pi (استخدمنا Old School Pi 1 لهذه التعليمات!) ؛ كتاب أكبر من Raspberry Pi الخاص بك ؛ الصق الطلاء متعدد الأغراض
بطاقة عمل وحدة فك الترميز - رسالة سرية مشفرة QR: 6 خطوات (بالصور)
بطاقة عمل Decoder - رسالة سرية مشفرة QR: يمكن أن يساعدك امتلاك بطاقة عمل جيدة في الحفاظ على جهات الاتصال والترويج لنفسك وعملك وتكوين صداقات. من خلال إنشاء بطاقة عمل شخصية تتضمن قيام المستلم بترجمة بطاقتك بنشاط ، سيجعله أكثر عرضة لتذكر