Satura rādītājs:

Šis PNG ir slepenais nodalījums: 4 soļi
Šis PNG ir slepenais nodalījums: 4 soļi

Video: Šis PNG ir slepenais nodalījums: 4 soļi

Video: Šis PNG ir slepenais nodalījums: 4 soļi
Video: IT-шоу Чоле Пудес - это наше поле чудес. Последний ивент 2021 на MJC 2024, Novembris
Anonim
Šis ir slepens nodalījums
Šis ir slepens nodalījums
Šis ir slepens nodalījums
Šis ir slepens nodalījums

Jūsu izaicinājums, dārgais lasītāj, ir izdomāt, kāds ziņojums ir paslēpts output-p.webp

Abi attēli šeit izskatās identiski, bet tie nav Šie ir greenman-p.webp

Šo pamācību iedvesmojis lielisks YouTube videoklips. Pēc tam, kad kādu dienu vēlu vakarā noskatījos šo video un mēģināju izdomāt foršu lekciju un vidusposma eksāmenu padziļinātai Java programmēšanas klasei, radās šis projekts. Iepriekš minētie attēli kopā ar kodu, kas aprakstīts šajā pamācībā, vietnē Github ir bez maksas.

Piegādes

Jums būs nepieciešams dators, un jums jāzina, kā apkopot un palaist Java programmu. Šī programma ir tikai divi īsi faili, un jums tā būs jāpalaiž komandrindā.

1. darbība: kas ir steganogrāfija

Jums vajadzētu noskatīties YouTube videoklipu, kuru es saistīju iepriekšējā solī, bet šeit ir kopsavilkums:

Ja jums ir jāslēpj draugam slepena ziņa, lielisks veids, kā to izdarīt, ir Steganogrāfija. Attēla Steganogrāfijas ideja ir vienkārša; datora attēlus veido pikseļi, un katrs pikselis ir sarkanā, zaļā un zilā kombinācija. Daudzos datora attēlu formātos sarkanā, zaļā un zilā krāsa katrā pikseļā ir izteikta kā vērtības no 0 līdz 127. Tā, piemēram, ļoti sarkanā pikseļa sarkanā vērtība būtu 127, bet zaļā un zilā - nulle. Triks ir šāds: sarkanā intensitāte 126 nav atšķirama no sarkanās intensitātes 127 (cilvēka acij). Un tā, iepludinot plus vai mīnus vienu katrā sarkanajā pikseļā, mēs varam paslēpt bitus pikseļos. Ja mēs atradīsim viltīgu veidu, kā savākt bitus atpakaļ, mēs varam atgūt datus, kurus esam iemūžinājuši attēlā!

Esi radošs! Steganogrāfiju var veikt ar jebkuru digitālo mediju! Jūs varat spēlēt, piemēram, ar mūzikas vai video failu bitiem, bet tas prasa jums veikt vairāk pētījumu ārpus šīs instrukcijas darbības jomas.

2. darbība. Kā teksts tiek kodēts datoros

Kā teksts tiek kodēts datoros
Kā teksts tiek kodēts datoros

Lai to saprastu, var būt vajadzīgs grāds CS vai daudz hobiju aizraušanās. Datori datus uzglabā bitos kā 1s un 0s. Šie 1 un 0 parasti tiek sagrupēti 8 grupās un apzīmēti kā "baiti". Kā paskaidrots šeit un šeit, ir daži veidi, kā mēs varam likt datoram interpretēt baitus kā tekstu. Lai gūtu maksimālu labumu no šīs steganogrāfijas lekcijas/pamācības, jums vairāk vai mazāk jāizprot ASCII un UTF8. Šie ir divi izplatīti veidi, kā kodēt valodas datus baitu sērijā.

Tiklīdz jums būs priekšstats par šo tēmu, jūs sapratīsit to: ASCII un UTF8 vārdu "the" attēlo šādi baiti (heksadecimālā formā) 0x74 0x68 0x65. Binārā veidā šie baiti ir: 01110100b 01101000b 01101101b

Turklāt jūs sapratīsit, ka UTF8 smaidošas sejas emocijzīmes attēlo šādi baiti (heksadecimālā formā) 0xF0 0x9F 0x98 0x80. Binārā šie baiti ir 11110000b 10011111b 10011000b 10000000b.

Jebkurā gadījumā pievienotajā ekrānuzņēmumā redzēsit, ka mans dators kaut ko dara ar šiem baitiem. Es tos programmas iznākumā esmu izcēlis ar bultiņām un lielu “SKATIES!”.

3. darbība: kā programma darbojas

Programmas apkopošana no github ir vienkārša. Šeit un pēc tam iegūstiet repo, kas parādīts pirmajā lapā

Programma tiek palaista šādi no komandrindas: java Galvenā input-p.webp

pievienotajos piemēros redzēsit, ka esmu palaidis java Main greenman-p.webp

Jūs darīsit to pašu.

Ja paskatās uz Main.java, jūs redzēsit, ka tas notiek šādi:

  1. Programma nolasa attēlu 2D masīvā
  2. Programma pārvērš jūsu iesniegto ziņojumu baitu masīvā (baits )
  3. Pēc tam programma izmanto klasi MessageHider, lai paslēptu ziņu baitus attēlu masīvā.
  4. Pēc tam programma izraksta attēla 2d masīvu failā (output.png) ar slēptiem datiem. Ja paskatās uz šo attēlu, tas neatšķiras no oriģināla
  5. Pēc tam programma nolasa output-p.webp" />

Tātad gandrīz kods darbojas tā, kā mēs gaidām.

4. solis. Secinājums

Tāpēc es jums esmu devis kādu darba kodu, pierādījumu, ka tas darbojas attēla veidā, un dažas lekciju piezīmes, kuras es pasniedzu saviem universitātes studentiem. Es tev arī uzaicināju izaicinājumu! Es pavadīju dažas stundas, rakstot kodu un sagatavojot lekciju pierakstus, tāpēc atvainojiet, ka šajā pamācībā nav daudz attēlu. Ja jūs domājat, ka steganogrāfija ir interesanta, lūdzu, pieņemiet manu izaicinājumu!

Ieteicams: