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, Novembar
Anonim
Ovaj je tajni odjeljak
Ovaj je tajni odjeljak
Ovaj je tajni odjeljak
Ovaj je tajni odjeljak

Vaš izazov, dragi čitaoče, je da shvatite koja je poruka skrivena u output-p.webp

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

Ova instrukcija inspirisana je sjajnim YouTube videom. Nakon što smo jednog dana kasno navečer pogledali ovaj video i mučili se smišljajući kul predavanje i međuispit za napredni čas programiranja Java, ovaj je projekt rođen. Gornje slike, zajedno sa kodom opisanim u ovom uputstvu, besplatne su na Githubu.

Supplies

Trebat će vam računar i morat ćete znati sastaviti i pokrenuti Java program. Ovaj program je samo dvije kratke datoteke i morat ćete ga pokrenuti u naredbenoj liniji.

Korak 1: Šta je steganografija

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

Ako trebate sakriti tajnu poruku prijatelju, odličan način za to je steganografija. Ideja steganografije slike je jednostavna; računarske slike su napravljene od piksela, a svaki piksel je kombinacija crvene, zelene i plave boje. U mnogim formatima računarskih 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 se ne razlikuje od intenziteta crvene boje 127 (za ljudsko oko). I tako petljanjem sa 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 sa bilo kojim digitalnim medijem! Na primjer, možete se igrati s dijelovima u muzičkim ili video datotekama, ali to od vas zahtijeva da dodatno istražite izvan opsega ovog uputstva.

Korak 2: Kako se tekst kodira na računarima

Kako se tekst kodira na računarima
Kako se tekst kodira na računarima

Ono što slijedi ovdje može zahtijevati diplomu CS ili mnogo hobističke strasti za razumijevanje. Računari skladište podatke u bitovima kao 1s i 0s. Ovi brojevi 1 i 0 obično su grupirani u grupe od 8 i nazivaju se "bajtovi". Kao što je objašnjeno ovdje i ovdje, postoji nekoliko načina na koje možemo reći računaru 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čkih podataka u nizu bajtova.

Kada steknete ideju o ovoj temi, razumjet ć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 ovi bajtovi su 11110000b 10011111b 10011000b 10000000b.

U svakom slučaju ćete na priloženom snimku zaslona vidjeti da moj računar radi nešto s ovim bajtovima. Istaknuo sam ih u programskom izlazu strelicama i velikim "POGLEDAJ!".

Korak 3: Kako program funkcionira

Sastavljanje programa s githuba je jednostavno. Ovdje i tada pribavite repo prikaz na naslovnoj stranici

Program se ovako pokreće iz komandne linije: java Main input-p.webp

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

Uradit ć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 dali u niz bajtova (bajt )
  3. Program tada koristi klasu MessageHider za skrivanje bajtova poruke u nizu slika.
  4. Program zatim zapisuje 2d niz slika u datoteku (output.png) sa skrivenim podacima. Ako pogledate ovu sliku, ona se ne razlikuje od originala
  5. Program zatim č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 studentima. Takođe sam vam dao izazov! Proveo sam nekoliko sati pišući kôd i pripremajući bilješke s predavanja pa mi je žao što ova instrukcija nema mnogo slika. Ako mislite da je steganografija zanimljiva, prihvatite moj izazov!

Preporučuje se: