Tartalomjegyzék:

Ez a PNG titkos rekesz: 4 lépés
Ez a PNG titkos rekesz: 4 lépés

Videó: Ez a PNG titkos rekesz: 4 lépés

Videó: Ez a PNG titkos rekesz: 4 lépés
Videó: Имба в костюме хряка ► 2 Прохождение Dark Souls remastered 2024, November
Anonim
Ez a titkos rekesz
Ez a titkos rekesz
Ez a titkos rekesz
Ez a titkos rekesz

A kihívás, kedves olvasó, az, hogy rájöjjön, milyen üzenet van elrejtve a output-p.webp

A két kép itt azonosnak tűnik, de nem ezek Ezek a greenman-p.webp

Ezt az utasítást egy nagyszerű YouTube -videó ihlette. Miután egy nap késő este megnéztem ezt a videót, és küzdöttem, hogy menő előadást és félidős vizsgát gondoljak egy haladó Java programozó órára, ez a projekt megszületett. A fenti képek és az ebben az útmutatóban leírt kód ingyenes a Githubon.

Kellékek

Szüksége lesz egy számítógépre, és tudnia kell, hogyan kell fordítani és futtatni egy Java programot. Ez a program csak két rövid fájl, és a parancssorban kell futtatnia.

Lépés: Mi a szteganográfia?

Meg kell néznie a youtube videót, amelyet az előző lépésben linkeltem, de itt az összefoglaló:

Ha el kell rejtenie egy titkos üzenetet egy barátjának, akkor erre jó módszer a szteganográfia. A képszteganográfia ötlete egyszerű; A számítógépes képek képpontokból állnak, és mindegyik képpont vörös, zöld és kék kombináció. Számos számítógépes képformátumban a piros, zöld és kék mennyiségek minden képpontban 0-127 közötti értékként vannak megadva. Így például egy nagyon piros pixel piros értéke 127, a zöld és kék értéke pedig nulla. A trükk a következő: a 126 -os vörös intenzitás megkülönböztethetetlen a 127 -es (az emberi szem számára) vörös intenzitástól. Így ha minden piros pixelben plusz vagy mínusz eggyel babrálunk, el tudjuk rejteni a biteket pixelben. Ha találunk egy alattomos módot a bitek visszagyűjtésére, akkor lekérhetjük azokat az adatokat, amelyeket a képbe csempésztünk!

Légy kreatív! A szteganográfia bármilyen digitális médiával elvégezhető! Játszhat például zenével vagy videofájlokkal ellátott bitekkel, de ehhez további kutatásokra van szüksége, amelyek ezen utasításon kívül esnek.

2. lépés: A szöveg kódolása a számítógépeken

Hogyan kódolják a szöveget a számítógépeken
Hogyan kódolják a szöveget a számítógépeken

A következőkben megkövetelt, hogy megértsük a CS diplomáját vagy sok hobbiszenvedélyt. A számítógépek bitekben tárolják az adatokat 1 és 0 másodpercben. Ezeket az 1 -eket és 0 -kat általában 8 -as csokrokba csoportosítják, és "bájtoknak" nevezik. Amint azt itt és itt kifejtettük, kevés módja van annak, hogy a számítógépet arra utasítsuk, hogy értelmezze a bájtokat szövegként. Ahhoz, hogy a legtöbbet hozza ki ebből a szteganográfiai előadásból/oktatható, többé -kevésbé meg kell értenie az ASCII -t és az UTF8 -at. Ez két gyakori módja a nyelvi adatok kódolásának egy bájtos sorozatban.

Ha van elképzelése erről a témáról, megérti ezt: ASCII és UTF8 esetén az "the" szót a következő bájtok képviselik (hexadecimálisan) 0x74 0x68 0x65. Bináris formában ezek a bájtok: 01110100b 01101000b 01101101b

Továbbá megérti, hogy az UTF8 -ban a Vigyorgó arc hangulatjelet a következő bájtok (hexadecimális formában) ábrázolják: 0xF0 0x9F 0x98 0x80. Binárisan ezek a bájtok 11110000b 10011111b 10011000b 10000000b.

Mindenesetre a mellékelt képernyőképen látni fogja, hogy a számítógépem valamit csinál ezekkel a bájtokkal. Kiemeltem őket a program kimenetén nyilakkal és egy nagy "LOOK!".

3. lépés: A program működése

A program összeállítása githubból egyszerű. Itt és akkor szerezze be a címlapon látható repót

A program a következőképpen futtatható a parancssorból: java Main input-p.webp

a mellékelt példákban láthatja, hogy futtattam a java Main greenman-p.webp

Ugyanezt fogod tenni.

Ha megnézi a Main.java oldalt, látni fogja, hogy ez történik:

  1. A program 2D tömbbe olvassa be a képet
  2. A program a megadott üzenetet bájt tömbvé alakítja (byte )
  3. A program ezután egy MessageHider osztályt használ az üzenetbájtok elrejtésére a képtömbben.
  4. A program ezután kiírja a kép 2d tömbjét egy fájlba (output.png), benne a rejtett adatokkal. Ha megnézzük ezt a képet, az nem különbözik az eredetitől
  5. A program ezután beolvassa a output-p.webp" />

Tehát a kód nagyjából úgy működik, ahogy elvárjuk.

4. lépés: Következtetés

Adtam tehát néhány működőkódot, annak bizonyítékát, hogy ez kép formájában működik, és néhány előadás jegyzetet adok egyetemi hallgatóimnak. Én is adtam neked egy kihívást! Néhány órát töltöttem a kód írásával és az előadás jegyzeteinek elkészítésével, ezért sajnálom, hogy ennek az utasításnak nincs sok képe. Ha szerinted a steganográfia érdekes, fogadd el a kihívásomat!

Ajánlott: