Sisukord:

See PNG on salajane sahtel: 4 sammu
See PNG on salajane sahtel: 4 sammu

Video: See PNG on salajane sahtel: 4 sammu

Video: See PNG on salajane sahtel: 4 sammu
Video: Unusual Kids Born with Super Unique Conditions 2024, November
Anonim
See on salajane sahtel
See on salajane sahtel
See on salajane sahtel
See on salajane sahtel

Hea väljakutse, hea lugeja, on välja selgitada, milline sõnum on väljundis-p.webp

Siin olevad kaks pilti näevad välja identsed, kuid mitte need. Need on greenman-p.webp

See juhend on inspireeritud suurepärasest YouTube'i videost. Pärast seda, kui vaatasin seda videot ühel õhtul hilisõhtul ja nägin vaeva, et mõelda välja lahe loeng ja vaheeksam täiustatud Java programmeerimisklassi jaoks, sündis see projekt. Ülaltoodud pildid koos selles juhendis kirjeldatud koodiga on Githubis tasuta.

Tarvikud

Teil on vaja arvutit ja peate teadma, kuidas Java -programmi kompileerida ja käivitada. See programm on vaid kaks lühikest faili ja peate selle käsurealt käivitama.

Samm: mis on steganograafia

Peaksite vaatama YouTube'i videot, mille ma eelmises etapis linkisin, kuid siin on kokkuvõte:

Kui teil on vaja sõbrale salajast sõnumit varjata, on lahe viis seda teha Steganograafia abil. Kujutise steganograafia idee on lihtne; arvutipildid koosnevad pikslitest ja iga piksel on punase, rohelise ja sinise kombinatsioon. Paljudes arvutipiltide vormingutes on punase, rohelise ja sinise kogused igas pikslis väljendatud väärtustena 0-127. Nii näiteks oleks väga punase piksli punane väärtus 127 ning rohelise ja sinise väärtus null. Nipp on järgmine: punast intensiivsust 126 ei saa eristada punasest intensiivsusest 127 (inimsilmale). Nii et igas punases pikslis pluss või miinus üks näppides saame bitid pikslitesse peita. Kui leiame varjatud viisi, kuidas bitte tagasi üles koguda, saame pildile hiilinud andmed kätte saada!

Ole loominguline! Steganograafiat saab teha mis tahes digitaalse meediaga! Saate mängida näiteks muusika- või videofailide bitti, kuid see nõuab, et teeksite rohkem uurimistööd väljaspool selle juhendi reguleerimisala.

2. samm: kuidas teksti arvutites kodeeritakse

Kuidas teksti arvutites kodeeritakse
Kuidas teksti arvutites kodeeritakse

Järgnev võib vajada arusaamist kraadist CS -is või palju harrastajate kirge. Arvutid salvestavad andmeid bitidena 1 ja 0 sekunditena. Need 1 -d ja 0 -d on tavaliselt rühmitatud 8 -liikmelisteks kimpudeks ja neid nimetatakse "baitideks". Nagu siin ja siin on selgitatud, on vähe võimalusi, kuidas me saame käsutada arvutil baite tekstina tõlgendama. Et sellest steganograafia loengust/juhendatavast maksimaalselt kasu saada, peate rohkem või vähem aru saama ASCII -st ja UTF8 -st. Need on kaks levinumat viisi keeleandmete baitide seerias kodeerimiseks.

Kui teil on selle teema kohta idee, saate sellest aru: ASCII ja UTF8 puhul tähistab sõna "the" järgmisi baite (heksades) 0x74 0x68 0x65. Binaarides on need baidid järgmised: 01110100b 01101000b 01101101b

Lisaks saate aru, et UTF8 -s on naeratava näo emotikon esindatud järgmiste baitidega (heksades) 0xF0 0x9F 0x98 0x80. Binaarides on need baidid 11110000b 10011111b 10011000b 10000000b.

Igal juhul näete lisatud ekraanipildil, et mu arvuti teeb nende baitidega midagi. Olen neid programmi väljundis nooltega ja suure "VAATA!" Esile tõstnud.

Samm: kuidas programm töötab

Programmi koostamine githubist on lihtne. Hankige repot siin ja siis esilehel

Programm käivitatakse käsurealt järgmiselt: java Main input-p.webp

lisatud näidetes näete, et olen käivitanud java Main greenman-p.webp

Sa teed sama asja.

Kui vaatate Main.java, näete, et see juhtub nii:

  1. Programm loeb pildi 2D -massiiviks
  2. Programm muudab teie esitatud sõnumi baidimassiiviks (bait )
  3. Seejärel kasutab programm MessageHider klassi, et peita pildimassiivi sõnumibaidid.
  4. Seejärel kirjutab programm pildi 2d massiivi faili (output.png) koos peidetud andmetega. Kui vaatate seda pilti, on see originaalist eristamatu
  5. Seejärel loeb programm output-p.webp" />

Nii et kood töötab peaaegu nii, nagu me ootame.

4. samm: järeldus

Nii et ma olen andnud teile mõne toimiva koodi, tõestuse selle toimimise kohta kujutise kujul ja mõned loengukonspektid, mida ma oma üliõpilastele annan. Esitasin teile ka väljakutse! Kulutasin paar tundi koodi kirjutamisele ja loengukonspektide ettevalmistamisele, nii et mul on kahju, et sellel juhendil pole palju pilte. Kui te arvate, et steganograafia on huvitav, võtke vastu minu väljakutse!

Soovitan: