ეს PNG არის საიდუმლო განყოფილება: 4 ნაბიჯი
ეს PNG არის საიდუმლო განყოფილება: 4 ნაბიჯი
Anonim
ეს არის საიდუმლო განყოფილება
ეს არის საიდუმლო განყოფილება
ეს არის საიდუმლო განყოფილება
ეს არის საიდუმლო განყოფილება

შენი გამოწვევა, ძვირფასო მკითხველო, არის იმის გააზრება, თუ რა შეტყობინება იმალება output-p.webp

ორი სურათი აქ იდენტურად გამოიყურება, მაგრამ ისინი არ არიან ეს არის greenman-p.webp

ეს ინსტრუქცია შთაგონებულია დიდი youtube ვიდეოთი. მას შემდეგ, რაც ამ ვიდეოს ვუყურე ერთ დღეს გვიან ღამით და მიჭირდა მაგარი ლექციისა და შუალედური გამოცდის მოფიქრება მოწინავე Java პროგრამირების კლასისთვის, ეს პროექტი დაიბადა. ზემოთ მოყვანილი სურათები, ამ ინსტრუქციაში აღწერილ კოდთან ერთად, უფასოა Github– ზე.

მარაგები

თქვენ დაგჭირდებათ კომპიუტერი და თქვენ უნდა იცოდეთ როგორ შეადგინოთ და გაუშვათ Java პროგრამა. ეს პროგრამა მხოლოდ ორი მოკლე ფაილია და თქვენ უნდა გაუშვათ იგი ბრძანების ხაზზე.

ნაბიჯი 1: რა არის სტეგანოგრაფია

თქვენ უნდა უყუროთ იუთუბის ვიდეორგოლს, რომელიც წინა ეტაპზე დავუკავშირე, მაგრამ აქ არის შეჯამება:

თუ თქვენ გჭირდებათ მეგობრისთვის საიდუმლო შეტყობინების დამალვა, ამის მაგარი გზაა სტეგანოგრაფია. გამოსახულების სტეგანოგრაფიის იდეა მარტივია; კომპიუტერის სურათები დამზადებულია პიქსელებისგან და თითოეული პიქსელი არის წითელი, მწვანე და ლურჯი კომბინაცია. კომპიუტერის გამოსახულების მრავალ ფორმატში წითელი, მწვანე და ლურჯი რაოდენობა თითოეულ პიქსელში გამოხატულია 0-127 მნიშვნელობებით. მაგალითად, ძალიან წითელ პიქსელს ექნება წითელი მნიშვნელობა 127 და მწვანე და ლურჯი მნიშვნელობები ნული. ხრიკი ასეთია: 126 -ის წითელი ინტენსივობა არ განსხვავდება წითელი ინტენსივობისგან 127 -დან (ადამიანის თვალისთვის). ამრიგად, თითოეულ წითელ პიქსელში პლუს ან მინუს ერთით შეგვიძლია დავმალოთ ბიტები პიქსელებში. თუ ჩვენ ვიპოვით sneaky გზას შეგროვება ბიტი უკან, ჩვენ შეგვიძლია ვიღებ მონაცემებს, რომ ჩვენ snuck შევიდა სურათი!

Იყავი კრეატიული! სტეგანოგრაფია შეიძლება გაკეთდეს ნებისმიერი ციფრული მედიის საშუალებით! მაგალითად, შეგიძლიათ ითამაშოთ ბიტებით მუსიკალურ ან ვიდეო ფაილებში, მაგრამ ეს მოითხოვს თქვენ უფრო მეტი კვლევის ჩატარებას ამ ინსტრუქციის ფარგლებში.

ნაბიჯი 2: როგორ დაშიფრულია ტექსტი კომპიუტერებზე

როგორ დაშიფრულია ტექსტი კომპიუტერებზე
როგორ დაშიფრულია ტექსტი კომპიუტერებზე

ის, რაც აქ ხდება, შეიძლება მოითხოვოს ხარისხი CS ან ბევრი ჰობისტური ვნების გასაგებად. კომპიუტერები ინახავს მონაცემებს ბიტებში, როგორც 1s და 0s. ეს 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.

ნებისმიერ შემთხვევაში თქვენ იხილავთ თანდართულ ეკრანის სურათს, რომ ჩემი კომპიუტერი რაღაცას აკეთებს ამ ბაიტებით. მე გამოვყავი ისინი პროგრამის გამოშვებაში ისრებით და დიდი "შეხედე!".

ნაბიჯი 3: როგორ მუშაობს პროგრამა

Github– დან პროგრამის შედგენა ადვილია. მიიღეთ წინა გვერდზე ნაჩვენები რეპო აქ და შემდეგ

პროგრამა გაშვებულია ასე ბრძანების სტრიქონიდან: java Main input-p.webp

თანდართულ მაგალითებში ნახავთ, რომ მე java Main greenman-p.webp

იგივეს გააკეთებ.

თუ გადახედავთ Main.java– ს, ნახავთ, რომ ეს არის ის, რაც ხდება:

  1. პროგრამა კითხულობს სურათს 2D მასივში
  2. პროგრამა თქვენს მიერ მოწოდებულ შეტყობინებას აქცევს ბაიტის მასივად (ბაიტი )
  3. შემდეგ პროგრამა იყენებს MessageHider კლასს, რათა დამალოს შეტყობინების ბაიტები გამოსახულების მასივში.
  4. შემდეგ პროგრამა წერს გამოსახულების 2d მასივს ფაილში (output.png), რომელშიც არის დამალული მონაცემები. თუ დააკვირდებით ამ სურათს, ის არ განსხვავდება ორიგინალისგან
  5. პროგრამა შემდეგ კითხულობს output-p.webp" />

ასე რომ, კოდი მუშაობს ისე, როგორც ჩვენ ველოდებით.

ნაბიჯი 4: დასკვნა

მე მოგეცით სამუშაო კოდი, მტკიცებულება იმისა, რომ ის მუშაობს გამოსახულების სახით, და რამდენიმე ლექციის ჩანაწერს ვაძლევ ჩემს უნივერსიტეტის სტუდენტებს. მე ასევე მოგცემთ გამოწვევას! რამდენიმე საათი გავატარე კოდის წერაზე და ლექციების ჩანაწერების მომზადებაზე, ასე რომ ვწუხვარ, რომ ამ სასწავლო ინსტრუქციას ბევრი სურათი არ აქვს. თუ ფიქრობთ, რომ სტეგანოგრაფია საინტერესოა, გთხოვთ მიიღოთ ჩემი გამოწვევა!

გირჩევთ: