Бул PNG жашыруун бөлүм: 4 кадам
Бул PNG жашыруун бөлүм: 4 кадам
Anonim
Бул жашыруун бөлүм
Бул жашыруун бөлүм
Бул жашыруун бөлүм
Бул жашыруун бөлүм

Сиздин көйгөйүңүз, урматтуу окурман, мен сиз үчүн githubго койгон output-p.webp

Бул жердеги эки сүрөт окшош, бирок алар эмес, булар мен жогоруда байланыштырган greenman-p.webp

Бул көрсөтмө улуу youtube видеосунун жетеги менен жазылган. Бир күнү бул видеону түн бир оокумда көргөндөн кийин, Java программалоо классынын эң сонун лекциясын жана орто сынагын ойлоп, бул долбоор жарыкка келди. Жогорудагы сүрөттөр, бул нускоочуда сүрөттөлгөн код менен бирге Githubда бекер.

Жабдуулар

Сизге компьютер керек болот жана сиз Java программасын кантип түзүүнү жана иштетүүнү билишиңиз керек болот. Бул программа болгону эки кыска файл жана сиз аны буйрук сабында иштетишиңиз керек.

1 -кадам: Steganography деген эмне?

Сиз мурунку кадамда байланыштырган youtube видеосун көрүшүңүз керек, бирок бул жерде кыскача:

Эгерде сиз досуңузга жашыруун билдирүүнү жашырышыңыз керек болсо, муну салкын ыкма Steganography менен жасоого болот. Сүрөт стеганографиясынын идеясы жөнөкөй; компьютердин сүрөттөрү пикселден жасалган жана ар бир пиксел кызыл, жашыл жана көк түстүн айкалышынан турат. Көптөгөн компьютерлердин сүрөт форматтарында ар бир пикселдеги кызыл, жашыл жана көк түстөр 0-127ге чейинки баалуулуктар катары көрсөтүлөт. Мисалы, абдан кызыл пикселдин кызыл мааниси 127, жашыл жана көк мааниси нөл болмок. Айла мындай: кызыл интенсивдүүлүк 126 кызыл интенсивдүүлүктөн айырмаланбайт (адамдын көзүнө). Ошентип, ар бир кызыл пикселде плюс же минус биринин жардамы менен биз биттерди пикселге жашыра алабыз. Эгерде биз биттерди кайра чогултуунун тымызын жолун тапсак, анда биз сүрөттүн ичине кирип кеткен маалыматтарды ала алабыз!

Чыгармачыл бол! Стеганографияны каалаган санарип медиа менен жасаса болот! Сиз, мисалы, музыкада же видео файлдарда биттер менен ойной аласыз, бирок бул сизге бул көрсөтмөнүн чегинен тышкары дагы көбүрөөк изилдөө жүргүзүүнү талап кылат.

2 -кадам: Текст компьютерде кантип коддолгон

Компьютерде текст кантип коддолгон
Компьютерде текст кантип коддолгон

Бул жерде айтылгандарды түшүнүү үчүн CS даражасын же көптөгөн хоббистик кумарды талап кылышы мүмкүн. Компьютерлер биттерди 1с жана 0с катары сакташат. Бул 1лер жана 0лер адатта 8ден турган топторго бөлүнөт жана "байт" деп аталат. Бул жерде жана бул жерде түшүндүрүлгөндөй, компьютерге байттарды текст катары чечмелөөнүн бир нече жолу бар. Бул стеганография лекциясынан көбүрөөк пайда алуу үчүн/аздыр -көптүр ASCII жана UTF8ди түшүнүшүңүз керек. Бул байттардын катарында тилдик маалыматтарды коддоонун эки жалпы жолу.

Сиз бул тема жөнүндө түшүнүккө ээ болгондон кийин, муну түшүнөсүз: ASCII жана UTF8де "the" сөзү төмөнкү байттар менен көрсөтүлөт (он алтылык) 0x74 0x68 0x65. Бинардык түрдө бул байттар: 01110100b 01101000b 01101101b

Мындан тышкары, UTF8де Grining Face Emoji төмөнкү байттар (он алтылык) менен көрсөтүлгөнүн түшүнөсүз 0xF0 0x9F 0x98 0x80. Бинардык бул байттар 11110000b 10011111b 10011000b 10000000b.

Кандай болбосун, тиркелген скриншотто менин компьютерим бул байттар менен бир нерсе кылып жатканын көрөсүз. Мен аларды программанын чыгарылышында жебелер жана чоң "LOOK!" Менен бөлүп көрсөттүм.

3 -кадам: Программа кантип иштейт

Githubдан программаны түзүү оңой. Бул жерде жана андан кийин алдыңкы бетте көрсөтүлгөн репо алыңыз

Программа буйрук сабынан мындай иштейт: java Main input-p.webp

тиркелген мисалдарда мен java Main greenman-p.webp

Сиз дагы ушундай кыласыз.

Эгер Main.java карасаңыз, анда эмне болуп жатканын көрөсүз:

  1. Программа сүрөттү 2D массивге окуйт
  2. Программа сиз берген билдирүүнү байт массивине айлантат (байт )
  3. Андан кийин программа MessageHider классын колдонуп, сүрөт массивиндеги билдирүү байттарын жашырат.
  4. Андан кийин программа сүрөттү 2д массивин ичинде жашырылган маалыматтары бар файлга (output.png) жазат. Бул сүрөттү карасаңыз, оригиналдан айырмаланбайт
  5. Андан кийин программа output-p.webp" />

Код дээрлик биз күткөндөй иштейт.

4 -кадам: Жыйынтык

Ошентип, мен сизге жумушчу кодун, анын сүрөт түрүндө иштээрин тастыктаган документти жана университеттин студенттерине берген лекцияларымды бердим. Мен да сага чакырык таштадым! Мен кодду жазууга жана лекциялардын конспектилерин даярдоого бир нече саат кетирдим, андыктан бул көрсөтмөдө көп сүрөттөр жок экенине өкүнөм. Эгерде сиз стеганографияны кызыктуу деп ойлосоңуз, менин чакырыгымды кабыл алыңыз!

Сунушталууда: