Sisällysluettelo:
- Tarvikkeet
- Vaihe 1: Mikä on steganografia
- Vaihe 2: Kuinka teksti koodataan tietokoneissa
- Vaihe 3: Kuinka ohjelma toimii
- Vaihe 4: Johtopäätös
Video: Tämä PNG on salainen osasto: 4 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 08:59
Haasteesi, rakas lukija, on selvittää, mikä viesti on piilotettu output-p.webp
Nämä kaksi kuvaa näyttävät identtisiltä, mutta ne eivät ole Nämä ovat greenman.png- ja output-p.webp
Tämä ohje on inspiroitu upeasta YouTube -videosta. Kun katsoimme tämän videon myöhään illalla yhden päivän ja kamppailimme ajatellaksesi viileää luentoa ja välitestiä edistyneelle Java -ohjelmointikurssille, tämä projekti syntyi. Yllä olevat kuvat sekä tässä ohjeessa kuvattu koodi ovat ilmaisia Githubissa.
Tarvikkeet
Tarvitset tietokoneen ja sinun on tiedettävä, miten Java -ohjelma käännetään ja ajetaan. Tämä ohjelma on vain kaksi lyhyttä tiedostoa ja sinun on suoritettava se komentoriviltä.
Vaihe 1: Mikä on steganografia
Sinun pitäisi katsoa edellisessä vaiheessa linkittämäni YouTube -video, mutta tässä on yhteenveto:
Jos sinun täytyy piilottaa salainen viesti ystävällesi, hieno tapa tehdä se on Steganography. Kuvan Steganografian idea on yksinkertainen; Tietokonekuvat koostuvat pikseleistä, ja jokainen pikseli on punaisen, vihreän ja sinisen yhdistelmä. Monissa tietokoneiden kuvamuotoissa punaisen, vihreän ja sinisen määrä kussakin pikselissä ilmaistaan arvoina 0-127. Esimerkiksi hyvin punaisen pikselin punainen arvo on 127 ja vihreä ja sininen nolla. Temppu on seuraava: punaista voimakkuutta 126 ei voi erottaa punaisesta intensiteetistä 127 (ihmissilmälle). Ja niin piilottamalla plus tai miinus yksi jokaisessa punaisessa pikselissä voimme piilottaa bitit pikseleinä. Jos löydämme ovelan tavan kerätä bitit takaisin ylös, voimme noutaa tiedot, jotka olemme hiipineet kuvaan!
Ole luova! Steganografia voidaan tehdä millä tahansa digitaalisella medialla! Voit pelata esimerkiksi musiikki- tai videotiedostojen bitteillä, mutta tämä edellyttää, että lähdet tekemään enemmän tutkimusta tämän ohjeen soveltamisalan ulkopuolella.
Vaihe 2: Kuinka teksti koodataan tietokoneissa
Seuraavat asiat saattavat edellyttää tutkinnon suorittamista CS: ssä tai paljon harrastajien intohimoa ymmärtääkseen. Tietokoneet tallentavat tiedot bitteinä 1s ja 0s. Nämä 1: t ja 0: t on tyypillisesti ryhmitelty 8: n ryhmiksi ja niitä kutsutaan "tavuiksi". Kuten täällä ja täällä on selitetty, on muutamia tapoja, joilla voimme käskeä tietokoneen tulkitsemaan tavuja tekstinä. Jotta saat kaiken irti tästä steganografian luennosta/opetettavasta, sinun on ymmärrettävä enemmän tai vähemmän ASCII ja UTF8. Nämä ovat kaksi yleistä tapaa koodata kielitiedot tavusarjoihin.
Kun sinulla on käsitys tästä aiheesta, ymmärrät tämän: ASCII: ssä ja UTF8: ssa sanaa "edustavat" seuraavat tavut (heksadesimaaleina) 0x74 0x68 0x65. Binaarimuodossa nämä tavut ovat: 01110100b 01101000b 01101101b
Lisäksi ymmärrät, että UTF8: ssa Grinning Face Emoji edustaa seuraavia tavuja (heksadesimaaleina) 0xF0 0x9F 0x98 0x80. Binäärinä nämä tavut ovat 11110000b 10011111b 10011000b 10000000b.
Joka tapauksessa näet liitteenä olevassa kuvakaappauksessa, että tietokoneeni tekee jotain näiden tavujen kanssa. Olen korostanut ne ohjelman tuotoksessa nuolilla ja suurella "LOOK!".
Vaihe 3: Kuinka ohjelma toimii
Ohjelman kääntäminen githubista on helppoa. Näet repun etusivulla täällä ja silloin
Ohjelma suoritetaan näin komentoriviltä: java Main input-p.webp
oheisista esimerkeistä näet, että olen suorittanut java Main greenman-p.webp
Teet saman asian.
Jos katsot Main.javaa, näet, että näin tapahtuu:
- Ohjelma lukee kuvan 2D -matriisiksi
- Ohjelma muuttaa lähettämäsi viestin tavutaulukkoksi (tavu )
- Ohjelma käyttää sitten MessageHider -luokkaa piilottaakseen kuvaryhmän viestitavu.
- Ohjelma kirjoittaa sitten kuvan 2d -taulukon tiedostoon (output.png), jonka sisällä on piilotetut tiedot. Jos katsot tätä kuvaa, sitä ei voi erottaa alkuperäisestä
- Ohjelma lukee output.png: n uuteen 2D -matriisiin ja käyttää extractMessage () -funktiota poistaakseen viimeisen bitin niin monesta tavusta kuin pyydät. Nämä bitit tulostetaan näytölle 8s: n ryhmissä, joten näet binäärisen esityksen siitä, mitä tietoja on piilotettu.
Koodi toimii siis odotetusti.
Vaihe 4: Johtopäätös
Joten olen antanut sinulle jonkin toimivan koodin, todisteen siitä, että se toimii kuvan muodossa, ja joitakin luentomuistiinpanoja, jotka annan yliopisto -opiskelijoilleni. Annoin sinulle myös haasteen! Vietin muutaman tunnin koodin kirjoittamiseen ja luentomuistiinpanojen valmisteluun, joten olen pahoillani, että tässä ohjeessa ei ole paljon kuvia. Jos steganografia on mielestäsi mielenkiintoista, ota haaste vastaan!
Suositeltava:
Kuinka tehdä salainen kommunikaattori mikrobitin avulla: 9 vaihetta
Kuinka tehdä salainen kommunikaattori käyttämällä Micro Bit: Minua inspiroi "othermachines" you tube -kanava. Täältä mitä sain siitä - http://youtu.be/mqlMo4LbfKQTämä mitä lisäsin itseeni - LCD -näytöt - näppäimistö muille mikrobitti- pankeille- Lisäkoodi sille
Salainen seinälle asennettava koti-automaatiotabletti: 6 vaihetta
Seinäasennettava salainen kotiautomaatiotabletti: Tässä ohjeessa kerrotaan, miten luodaan kiinnike openHAB-tabletille (https://www.openhab.org/), josta tabletin voi poistaa milloin tahansa ja ladata sen ilman kaapelin ja jätä seinän näyttämään täysin normaalilta, kun mikään tabletti ei ole
Expression Robot- Jos tämä on tämä: 5 vaihetta
Expression Robot- If This Than That: Hallo ja tervetuloa Expression Robot Instructable.DIt is de instructable waar ik aan heb gewerkt tijdens mijn les van If This Than That. . Robottiyhteistyö
Nike LED Swoosh! Tämä on loistava sisustus huoneeseen. Tämä on yksi projekti, jonka jokainen voi toistaa: 5 vaihetta
Nike LED Swoosh! Tämä on loistava sisustus huoneeseen. Tämä on yksi projekti, jonka jokainen voi toistaa. 2x puu 20-20-3000 2x vaneri 500-1000mm ruuvit (45mm) 150x ruuvit (35mm) 30x
Jos tämä kuin tämä: 5 vaihetta
Jos tämä on sitä: vuorovaikutuksessa Bijenkorf. Tässä projektissa heb ik een interactief systeem proberen te bouwen dat aanvoelt als een levend organizme. Tässä järjestelmässä ei ole geluidia ja trillingenergiaa eikä reagenssia. Vuorovaikutteinen tapaaminen