Πίνακας περιεχομένων:
- Προμήθειες
- Βήμα 1: Τι είναι η στεγανογραφία
- Βήμα 2: Πώς κωδικοποιείται το κείμενο σε υπολογιστές
- Βήμα 3: Πώς λειτουργεί το πρόγραμμα
- Βήμα 4: Συμπέρασμα
Βίντεο: Αυτό το PNG είναι μυστικό διαμέρισμα: 4 βήματα
2024 Συγγραφέας: John Day | [email protected]. Τελευταία τροποποίηση: 2024-01-31 10:18
Η πρόκλησή σας, αγαπητέ αναγνώστη, είναι να καταλάβετε ποιο μήνυμα κρύβεται στην εικόνα output-p.webp
Οι δύο εικόνες εδώ φαίνονται πανομοιότυπες αλλά δεν είναι. Αυτές είναι οι εικόνες greenman-p.webp
Αυτό το διδακτικό είναι εμπνευσμένο από ένα υπέροχο βίντεο στο youtube. Αφού είδα αυτό το βίντεο αργά τη νύχτα μια μέρα και αγωνίστηκα να σκεφτώ μια δροσερή διάλεξη και ενδιάμεση εξέταση για ένα προηγμένο μάθημα προγραμματισμού Java, αυτό το έργο γεννήθηκε. Οι παραπάνω εικόνες, μαζί με τον κωδικό που περιγράφεται σε αυτό το εκπαιδευτικό, είναι δωρεάν στο Github.
Προμήθειες
Θα χρειαστείτε έναν υπολογιστή και θα πρέπει να ξέρετε πώς να μεταγλωττίσετε και να εκτελέσετε ένα πρόγραμμα Java. Αυτό το πρόγραμμα είναι μόνο δύο σύντομα αρχεία και θα πρέπει να το εκτελέσετε στη γραμμή εντολών.
Βήμα 1: Τι είναι η στεγανογραφία
Θα πρέπει να παρακολουθήσετε το βίντεο στο youtube που συνδέσα στο προηγούμενο βήμα, αλλά εδώ είναι η περίληψη:
Εάν πρέπει να αποκρύψετε ένα μυστικό μήνυμα σε έναν φίλο, ένας δροσερός τρόπος για να το κάνετε είναι με τη Στεγανογραφία. Η ιδέα της εικόνας Steganography είναι απλή. Οι εικόνες του υπολογιστή είναι φτιαγμένες από εικονοστοιχεία και κάθε εικονοστοιχείο είναι ένας συνδυασμός κόκκινου, πράσινου και μπλε. Σε πολλές μορφές εικόνας υπολογιστή οι ποσότητες κόκκινου, πράσινου και μπλε σε κάθε εικονοστοιχείο εκφράζονται ως τιμές από 0-127. Έτσι, για παράδειγμα, ένα πολύ κόκκινο εικονοστοιχείο θα έχει κόκκινη τιμή 127 και πράσινες και μπλε τιμές μηδέν. Το κόλπο είναι αυτό: μια κόκκινη ένταση 126 δεν διακρίνεται από μια κόκκινη ένταση 127 (σε ανθρώπινο μάτι). Και έτσι παίζοντας με συν ή πλην ένα σε κάθε κόκκινο εικονοστοιχείο μπορούμε να κρύψουμε κομμάτια σε εικονοστοιχεία. Αν βρούμε έναν ύπουλο τρόπο για να συγκεντρώσουμε τα κομμάτια, μπορούμε να ανακτήσουμε τα δεδομένα που είχαμε εισάγει στην εικόνα!
Να είσαι δημιουργικός! Η στεγανογραφία μπορεί να γίνει με οποιοδήποτε ψηφιακό μέσο! Μπορείτε να παίξετε με κομμάτια σε αρχεία μουσικής ή βίντεο, για παράδειγμα, αλλά αυτό απαιτεί να κάνετε περισσότερες έρευνες εκτός του πεδίου αυτού του οδηγού.
Βήμα 2: Πώς κωδικοποιείται το κείμενο σε υπολογιστές
Αυτό που ακολουθεί εδώ μπορεί να απαιτεί πτυχίο CS ή πολύ χόμπις πάθος για να το καταλάβετε. Οι υπολογιστές αποθηκεύουν δεδομένα σε bits ως 1s και 0s. Αυτά τα 1 και 0 συνήθως ομαδοποιούνται σε δέσμες των 8 και αναφέρονται ως "bytes". Όπως εξηγείται εδώ και εδώ υπάρχουν μερικοί τρόποι με τους οποίους μπορούμε να πούμε σε έναν υπολογιστή να ερμηνεύει τα byte ως κείμενο. Για να αξιοποιήσετε στο έπακρο αυτήν τη διάλεξη/διδάσκοντας τη στεγανογραφία, πρέπει να κατανοήσετε λίγο πολύ τα ASCII και UTF8. Αυτοί είναι δύο συνηθισμένοι τρόποι κωδικοποίησης δεδομένων γλώσσας σε μια σειρά byte.
Μόλις αποκτήσετε μια ιδέα για αυτό το θέμα, θα το καταλάβετε: Στο ASCII και το UTF8 η λέξη "the" αντιπροσωπεύεται από τα ακόλουθα byte (σε εξάγωνο) 0x74 0x68 0x65. Σε δυαδική μορφή, αυτά τα byte είναι: 01110100b 01101000b 01101101b
Επιπλέον, θα καταλάβετε ότι στο UTF8 ένα Grinning Face Emoji αντιπροσωπεύεται από τα ακόλουθα byte (σε εξάδα) 0xF0 0x9F 0x98 0x80. Στα δυαδικά αυτά τα bytes είναι 11110000b 10011111b 10011000b 10000000b.
Σε κάθε περίπτωση θα δείτε στο συνημμένο στιγμιότυπο οθόνης ότι ο υπολογιστής μου κάνει κάτι με αυτά τα byte. Τα έχω επισημάνει στην έξοδο του προγράμματος με βέλη και ένα μεγάλο "LOOK!".
Βήμα 3: Πώς λειτουργεί το πρόγραμμα
Η σύνταξη του προγράμματος από το github είναι εύκολη. Αποκτήστε το repo που εμφανίζεται στην πρώτη σελίδα εδώ και έπειτα
Το πρόγραμμα εκτελείται έτσι από τη γραμμή εντολών: java Main input-p.webp
στα συνημμένα παραδείγματα θα δείτε ότι έχω τρέξει το java Main greenman-p.webp
Θα κάνεις το ίδιο πράγμα.
Αν κοιτάξετε το Main.java θα δείτε ότι αυτό συμβαίνει:
- Το πρόγραμμα διαβάζει την εικόνα σε έναν πίνακα 2D
- Το πρόγραμμα μετατρέπει το μήνυμα που δώσατε σε πίνακα byte (byte )
- Το πρόγραμμα στη συνέχεια χρησιμοποιεί μια κλάση MessageHider για να αποκρύψει τα byte μηνυμάτων στον πίνακα εικόνας.
- Το πρόγραμμα στη συνέχεια γράφει τον πίνακα εικόνας 2d σε ένα αρχείο (output.png) με τα κρυμμένα δεδομένα μέσα. Αν κοιτάξετε αυτήν την εικόνα, δεν διακρίνεται από την αρχική
- Το πρόγραμμα διαβάζει στη συνέχεια το output-p.webp" />
Λίγο πολύ ο κώδικας λειτουργεί όπως περιμέναμε.
Βήμα 4: Συμπέρασμα
Σας έδωσα λοιπόν έναν κώδικα εργασίας, απόδειξη ότι λειτουργεί με τη μορφή εικόνας και μερικές σημειώσεις διάλεξης που δίνω στους φοιτητές του πανεπιστημίου μου. Σας έδωσα επίσης μια πρόκληση! Πέρασα μερικές ώρες γράφοντας τον κώδικα και ετοιμάζοντας σημειώσεις διάλεξης, έτσι λυπάμαι που αυτό το διδακτικό δεν έχει πολλές εικόνες. Εάν πιστεύετε ότι η στεγανογραφία είναι ενδιαφέρουσα, παραδεχτείτε την πρόκληση μου!
Συνιστάται:
Καθρέπτης αναγνώρισης προσώπου με μυστικό διαμέρισμα: 15 βήματα (με εικόνες)
Καθρέφτης αναγνώρισης προσώπου με μυστικό διαμέρισμα: Πάντα με ενθουσίαζαν τα πάντα δημιουργικά μυστικά διαμερίσματα που χρησιμοποιούνται σε ιστορίες, ταινίες και άλλα παρόμοια. Έτσι, όταν είδα τον Διαγωνισμό Secret Compartment, αποφάσισα να πειραματιστώ με την ιδέα και να φτιάξω έναν συνηθισμένο καθρέφτη που ανοίγει ένα
Ρομπότ έκφρασης- Αν αυτό από αυτό: 5 βήματα
Expression Robot- If This Than That: Hallo en welkom bij mijn Expression Robot Instructable.DIt is deructable waar ik aan heb gewerkt tijdens mijn les van If This Than That.De Expression robot is gemaakt met als doel jou als gebruiker te stimuleren bij jezelfreflectie Το De robot co
Nike LED Swoosh! Αυτή είναι μια υπέροχη διακόσμηση για ένα δωμάτιο. Αυτό είναι το ένα έργο που μπορούν να επαναλάβουν όλοι: 5 βήματα
Nike LED Swoosh! Αυτή είναι μια υπέροχη διακόσμηση για ένα δωμάτιο. Αυτό είναι το ένα έργο που μπορεί να επαναλάβει ο καθένας .: Εργαλεία -μετροταινία-κατσαβίδι-συγκολλητικό σίδερο-πριόνι αντιμετώπισης-ηλεκτρικό τρυπάνι-γυαλόχαρτοΑναφορικά-LED led (RGB) 5m-LED controller -Power Supply 12V 4A-timber 50-50-1500 2x-ξύλο 20-20-3000 2x κόντρα πλακέ 500-1000mm-βίδες (45mm) 150x-βίδες (35mm) 30x-scr
Αν αυτό από αυτό: 5 βήματα
If This Than That: Interactieve Bijenkorf. In dit project heb ik een interactief systeem proberen te bouwen dat aanvoelt als een levend organisme. Dist systeem neemt geluid en trillingen weer en reageert daar op door middel van licht. De toeschouwer kan interactie συναντήθηκε
Αν αυτό, τότε αυτό: Φορητή κονσόλα Arduino: 5 βήματα
Αν Αυτό, Τότε Αυτό: Φορητή Κονσόλα Arduino: Αυτό είναι ένα απλό παιχνίδι στο στόχο. Μετακινείτε τη συσκευή αναπαραγωγής με δύο χωρητικές μονάδες αφής και τραβάτε κάνοντας σκληρούς ήχους, όπως χτυπήματα, φωνές ή κουνώντας το κουτί. Μέρη που χρησιμοποίησα: Arduino Uno Arduino a000096 tft screen 2 TTP223B Touch Module