Sadržaj:

Ovaj PNG je tajni odjeljak: 4 koraka
Ovaj PNG je tajni odjeljak: 4 koraka

Video: Ovaj PNG je tajni odjeljak: 4 koraka

Video: Ovaj PNG je tajni odjeljak: 4 koraka
Video: ЭТО ЖЕ CRYSIS 1 2024, Studeni
Anonim
Ovaj je tajni odjeljak
Ovaj je tajni odjeljak
Ovaj je tajni odjeljak
Ovaj je tajni odjeljak

Vaš izazov, dragi čitatelju, je shvatiti koja je poruka skrivena u output-p.webp

Dvije slike ovdje izgledaju identično, ali nisu. Ovo su slike greenman-p.webp

Ova instrukcija inspirirana je sjajnim YouTube videom. Nakon što sam jednog dana kasno navečer pogledao ovaj video i borio se smišljajući cool predavanje i međuispit za napredni tečaj programiranja Java, ovaj je projekt rođen. Gore navedene slike, zajedno s kodom opisanim u ovom uputstvu, besplatne su na Githubu.

Pribor

Trebat će vam računalo i morat ćete znati sastaviti i pokrenuti Java program. Ovaj program je samo dvije kratke datoteke i morat ćete ga pokrenuti u naredbenom retku.

Korak 1: Što je steganografija

Trebali biste pogledati YouTube video koji sam povezao u prethodnom koraku, ali evo sažetka:

Ako trebate sakriti tajnu poruku prijatelju, super način za to je steganografija. Ideja slikovne steganografije je jednostavna; računalne slike izrađene su od piksela, a svaki piksel je kombinacija crvene, zelene i plave boje. U mnogim formatima računalnih slika količine crvene, zelene i plave boje u svakom pikselu izražene su kao vrijednosti od 0-127. Tako bi, na primjer, vrlo crveni piksel imao crvenu vrijednost 127, a zelenu i plavu vrijednost nulu. Trik je sljedeći: intenzitet crvene boje 126 ne razlikuje se od intenziteta crvene boje 127 (za ljudsko oko). I tako petljanjem s plus ili minus jedan u svakom crvenom pikselu možemo sakriti bitove u pikselima. Ako pronađemo lukav način prikupljanja bitova, možemo dohvatiti podatke koje smo zavukli u sliku!

Budi kreativan! Steganografija se može raditi s bilo kojim digitalnim medijem! Na primjer, možete se igrati s dijelovima glazbenih ili video datoteka, ali to zahtijeva da nastavite s istraživanjem izvan opsega ovog uputstva.

Korak 2: Kako se tekst kodira na računalima

Kako se tekst kodira na računalima
Kako se tekst kodira na računalima

Ono što slijedi ovdje može zahtijevati diplomu CS ili mnogo hobističke strasti za razumijevanje. Računala pohranjuju podatke u bitovima kao 1s i 0s. Ovi brojevi 1 i 0 obično su grupirani u grupe od 8 i nazivaju se "bajtovi". Kako je ovdje i ovdje objašnjeno, postoji nekoliko načina na koje računalu možemo reći da interpretira bajtove kao tekst. Da biste izvukli maksimum iz ovog steganografskog predavanja/instrukcija, morate manje -više razumjeti ASCII i UTF8. Ovo su dva uobičajena načina kodiranja jezičnih podataka u nizu bajtova.

Kad steknete ideju o ovoj temi, shvatit ćete ovo: U ASCII i UTF8 riječ "the" predstavljena je sljedećim bajtovima (u heksadecimalnom broju) 0x74 0x68 0x65. U binarnom obliku, ovi bajtovi su: 01110100b 01101000b 01101101b

Nadalje, shvatit ćete da je u UTF8 Emoji nasmiješenog lica predstavljen sljedećim bajtovima (u heksadecimalnoj vrijednosti) 0xF0 0x9F 0x98 0x80. U binarnom obliku ti su bajtovi 11110000b 10011111b 10011000b 10000000b.

U svakom slučaju ćete na priloženom snimku zaslona vidjeti da moje računalo radi nešto s tim bajtovima. Istaknuo sam ih u izlaznom programu strelicama i velikim "POGLEDAJ!".

Korak 3: Kako program funkcionira

Sastavljanje programa s githuba je jednostavno. Ovdje i tada preuzmite repo prikazan na naslovnici

Program se ovako pokreće iz naredbenog retka: java Main input-p.webp

u priloženim primjerima vidjet ćete da sam pokrenuo java Main greenman-p.webp

Učinit ćete istu stvar.

Ako pogledate Main.java, vidjet ćete da se to događa:

  1. Program čita sliku u 2D nizu
  2. Program pretvara poruku koju ste unijeli u niz bajtova (bajt )
  3. Program tada koristi klasu MessageHider za skrivanje bajtova poruka u nizu slika.
  4. Program tada zapisuje 2d niz slika u datoteku (output.png) sa skrivenim podacima. Ako pogledate ovu sliku, ona se ne razlikuje od originala
  5. Program tada čita output-p.webp" />

Dakle, kod prilično dobro funkcionira kako očekujemo.

Korak 4: Zaključak

Pa sam vam dao neki radni kod, dokaz da radi u obliku slike i neke bilješke s predavanja koje dajem svojim studentima. Dao sam vam i izazov! Proveo sam nekoliko sati pišući kôd i pripremajući bilješke s predavanja pa mi je žao što ovaj instruktor nema mnogo slika. Ako mislite da je steganografija zanimljiva, prihvatite moj izazov!

Preporučeni: