Kazalo:
- Zaloge
- 1. korak: Kaj je steganografija
- 2. korak: Kako se besedilo kodira v računalnikih
- 3. korak: Kako program deluje
- 4. korak: Zaključek
Video: Ta PNG je skrivni predal: 4 koraki
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-31 10:24
Vaš izziv, dragi bralec, je ugotoviti, kakšno sporočilo je skrito v sliki output.png, ki sem vam jo dal na github. Za odstranitev sporočila lahko uporabite tam kodo MessageHider. Če ste zmedeni, komentirajte spodaj in pomagal vam bom dobiti odgovor! Takoj lahko celo prenehate z branjem, pojdite na github, vzemite kodo in začnite s steganografijo. Dovolj je bilo povedanega, a prosim, držite se in povedal vam bom več.
Tu sta sliki enaki, vendar nista. To sta sliki greenman-p.webp
Ta pouk je navdihnjen z odličnim video posnetkom na YouTubu. Ko smo si nekega dne pozno zvečer ogledali ta videoposnetek in se trudili, da bi si omislili kul predavanje in vmesni izpit za napredni razred programiranja Java, se je rodil ta projekt. Zgornje slike skupaj s kodo, opisano v tem navodilu, so na Githubu brezplačne.
Zaloge
Potrebovali boste računalnik in vedeti morate, kako sestaviti in zagnati program Java. Ta program je samo dve kratki datoteki in ga boste morali zagnati v ukazni vrstici.
1. korak: Kaj je steganografija
Morali bi si ogledati videoposnetek youtube, ki sem ga povezal v prejšnjem koraku, vendar je tukaj povzetek:
Če morate prijatelju skriti skrivno sporočilo, je to super način s steganografijo. Ideja slikovne steganografije je preprosta; računalniške slike so narejene iz slikovnih pik, vsak piksel pa je kombinacija rdeče, zelene in modre barve. V mnogih oblikah računalniških slik so količine rdeče, zelene in modre barve v vsaki slikovni piki izražene kot vrednosti od 0 do 127. Tako bi na primer zelo rdeč piksel imel rdečo vrednost 127 in zeleno -modro vrednost nič. Trik je naslednji: rdeča jakost 126 se ne razlikuje od rdeče jakosti 127 (za človeško oko). Tako lahko s poigravanjem s plusom ali minusom ena v vsaki rdeči slikovni piki skrijemo bite v slikovnih pikah. Če najdemo skriven način za zbiranje kosov nazaj, lahko pridobimo podatke, ki smo jih vtaknili v sliko!
Bodi ustvarjalen! Steganografijo lahko naredite s katerim koli digitalnim medijem! Lahko se na primer igrate z delčki v glasbenih ali video datotekah, vendar to zahteva, da opravite več raziskav zunaj obsega tega navodila.
2. korak: Kako se besedilo kodira v računalnikih
Kar sledi tukaj, bo morda zahtevalo diplomo iz CS ali veliko hobistične strasti za razumevanje. Računalniki shranjujejo podatke v bitih kot 1s in 0s. Te številke 1 in 0 so običajno združene v skupine po 8 in jih imenujemo "bajti". Kot je pojasnjeno tukaj in tukaj, obstaja nekaj načinov, kako lahko računalniku rečemo, da razlaga bajte kot besedilo. Če želite kar najbolje izkoristiti to predavanje/navodila za steganografijo, morate bolj ali manj razumeti ASCII in UTF8. To sta dva pogosta načina kodiranja jezikovnih podatkov v nizu bajtov.
Ko boste imeli predstavo o tej temi, boste razumeli to: V ASCII in UTF8 je beseda "the" predstavljena z naslednjimi bajti (v šestnajstikih) 0x74 0x68 0x65. V binarnem formatu so ti bajti: 01110100b 01101000b 01101101b
Poleg tega boste razumeli, da so emoji nasmejanega obraza v UTF8 predstavljeni z naslednjimi bajti (v šestnajstikih) 0xF0 0x9F 0x98 0x80. V binarnem formatu so ti bajti 11110000b 10011111b 10011000b 10000000b.
V vsakem primeru boste na priloženem posnetku zaslona videli, da moj računalnik nekaj počne s temi bajti. V izhodu programa sem jih označil s puščicami in velikim "POGLED!".
3. korak: Kako program deluje
Sestavljanje programa iz githuba je preprosto. Tu in tam dobite repo, prikazan na naslovnici
Program se tako zažene iz ukazne vrstice: java Main input-p.webp
v priloženih primerih boste videli, da sem vodil javo Main greenman-p.webp
Naredili boste isto stvar.
Če pogledate Main.java, boste videli, da se to zgodi:
- Program prebere sliko v 2D matriko
- Program spremeni sporočilo, ki ste ga vnesli, v bajtni niz (bajt )
- Program nato uporabi razred MessageHider za skrivanje bajtov sporočila v matriki slik.
- Program nato zapiše sliko 2d matriko v datoteko (output.png) s skritimi podatki. Če pogledate to sliko, se ne razlikuje od originala
- Program nato prebere output-p.webp" />
Koda torej deluje tako, kot pričakujemo.
4. korak: Zaključek
Zato sem vam dal nekaj delovne kode, dokaz, da deluje v obliki slike, in nekaj zapiskov s predavanj, ki jih dam svojim študentom. Tudi jaz sem vam dal izziv! Nekaj ur sem pisal kodo in pripravljal zapiske s predavanj, zato mi je žal, da ta navodila nimajo veliko slik. Če menite, da je steganografija zanimiva, sprejmite moj izziv!
Priporočena:
Skrivni predal: 4 koraki
Skrivni predal: Vedno so me navduševale skrivne sobe ali skriti predali. To je razlog, zakaj sem se nekega dne po ogledu filma o Batmanu odločil zgraditi svoj skriti predal. Ta projekt je sestavljen iz doprsnega kipa s skrivnim gumbom, ki ga lahko postavite povsod v
Predal za inventar "Hackathon Qualcomm17 pametnih mest": 13 korakov
Predal za inventar "Hackathon pametnih mest Qualcomm17": V naslednjem dokumentu si lahko ogledate postopek izdelave in programiranja inteligentnega predala. Ta predal je bil programiran v Dragon Board 410c z namenom izboljšanja kakovosti mest. Projekt je del natečaja “
Dodajte ključavnico IOT v kateri koli predal!: 4 koraki
Dodajte ključavnico IOT v kateri koli predal!: Pozdravljeni! Čez nekaj časa sem se odločil, da bom svoj zadnji projekt delil z vami. Ta je bila le ideja, ki sem jo dobil po nakupu poceni elektromagnetne ključavnice na spletu, in izkazal se je za odličen projekt. Torej, v bistvu je bila osnovna ideja narediti
Skrivalec malih sporočil/skrivni agent Chapstick: 4 koraki (s slikami)
Skrivalec malih sporočil/tajni agent Chapstick: Iščete mesto, kjer bi lahko shranili sporočilo za svojega prijatelja? Kaj pa služba tajnega agenta, ki ste si jo vedno želeli? Ta preprosta zasnova je idealna za takšne situacije in je zelo poceni za izdelavo
Mini predal za skrivne predelke: 5 korakov
Mini predal za skrivne oddelke: Ta navodila vam bodo pokazala, kako sem naredil omaro s predalom s skrivnim predelkom. Večinoma bom uporabil majhne podrobnosti za opis dejanj, ki sem jih naredil