
Súgó
Mi a képkódoló és mire jó?
Hogyan?
Részletesebben itt
Hogyan használjam?
Kódolás
-
Tölts fel egy képet, amire el szeretnéd rejteni a fájlt/szöveget!
-
Az elfogadott képformátumok:
.jpg
,.jpeg
,.png
,.bmp
,.webp
,.avif
,.tga
,.xbm
,.xpm
,.wbmp
. -
Ha egy másik kiterjesztésű képet szeretnél feltölteni, először konvertáld át az egyik támogatott formátumra (javasolt:
.png
). - Minél nagyobb felbontású képet töltesz fel, annál több adat fér a képre
- Ha nem szeretnél képet feltölteni, generáltathatsz képet, ha bepipálod a kép generálása opciót. Így egy akkora kép lesz generálva, amire pont ráfér a feltöltött adat. A kép úgy fog kinézni, mintha véletlenszerű pixelekből állna.
-
Az elfogadott képformátumok:
-
Írd be a titkosítandó szöveget, vagy tölts fel egy fájlt!
- Válaszd ki a megfelelő adattípust a fájlhoz! A médiához feltölthetsz képet, hangot vagy videót, az egyéb fájlhoz pedig bármilyen fájlt, a többihez értelemszerűen.
- Ha a szöveg típushoz töltesz fel fájlt, a fájl be lesz szövegként olvasva.
- A dekódoláskor a visszakódolt adat az adattípusnak megfelelően lesz megjelenítve.
- Ha az egyéb fájlt állítottad be típusként, nem lesz előnézet megjelenítve.
- A maximum feltölthető adatméret 4 GB (232-1 bájt), de ez persze a feltöltött kép méretétől is függ.
-
Állítsd be a felülírandó bitek számát!
- Adj meg egy számot 1 és 8 között. Minél nagyobb számot adsz meg, annál több adat fér a képre, viszont annál inkább romlik a kép minősége is. A részletekért kattints a mező mellett található információ ikonra!
- Ha bepipálod a legkevesebb lehetőséget, a felülírandó bitek automatikusan a legkevesebb értéket kapják.
-
Adj meg egy jelszót!
- Ez nem kötelező, de ha beírsz egy jelszót a jelszó mezőbe, a képen lévő adatokat csak akkor lehet visszakódolni, ha helyes jelszót adtak meg.
- Ha bepipálod a adat titkosítása AES-sel opciót, a feltöltött adat még egy ún. AES technikával is titkosítva lesz, így nagyon megnehezíti az adat feltörését.
-
Egyéb opciók:
- Teljes kép kitöltése: ha bejelölöd, az adat ismételve lesz a képen amíg el nem éri a kép utolsó pixelét, így nem lesz olyan feltűnő a minőségromlás, mert nemcsak a kép egy részén lesz torzulva a kép (ez nem javasolt, ha a felülírt bitek száma 1, mert akkor amúgysem észrevehető a változás).
-
Titkosítás!
- Ha mindent beállítottál, nyomj rá a titkosítás gombra és várd meg amíg a folyamat befejeződik.
- A folyamat befejezhető a leállítás gombbal.
- Ha a titkosítás elkészült, a beépített nézőkével megtekintheted a képet, a letöltés ikonnal pedig letöltheted. Fontos, hogy a kép nem tömöríthető veszteségesen, mert akkor a rajta tárolt adat elveszik!!!
Dekódolás
-
Töltsd fel a képet, amire lett kódolva adat! (Csak
.png
,.bmp
,.avif
,.tga
,.xbm
,.xpm
képformátumok elfogadottak, mert a támogatott kiterjesztések közül csak ezek veszteségmentesek). - Írd be a jelszót (ha van)!
- Nyomj a dekódolás gombra! A folyamat befejezhető a leállítás gombbal.
- Ha a folyamat befejeződött a beépített nézőkével megtekintheted a dekódolt adatot, vagy letöltheted a letöltés ikonnal.
Hibakódok jelentése
ERR_IMG_EXT |
A feltöltött kép kiterjesztése helytelen. Elfogadott képformátumok:
Titkosítás:
.jpg , .jpeg , .png , .bmp , .webp , .avif , .tga , .xbm , .xpm , .wbmp
Dekódolás:
.png , .bmp , .avif , .tga , .xbm , .xpm
|
||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ERR_DAT_EXT |
A feltöltött adat kiterjesztése nem felel meg a kiválasztott adattípusnak. Tölts fel másik kiterjesztésű fájlt, vagy válassz másik adattípust. Elfogadot fájlok a különböző adattípusokhoz:
|
||||||||||||||||||||||||
ERR_INV_DNM | A feltöltött adat neve üres, vagy olyan karaktereket tartalmaz, amik nem szerepelhetnek egy fájlnévben. Használható karakterek: betűk, számok, _ , - , . , ' , ( , ) , , .Írd át az adat nevét, a szövegmező piros színnel jelzi, ha helytelen karakter is szerepel benne! |
||||||||||||||||||||||||
ERR_DAT_NML | A feltöltött adat neve túl hosszú, maximum 255 bájt hosszú lehet. | ||||||||||||||||||||||||
ERR_SRV_ABT | Egy végzetes hiba lépett fel a folyamat (titkosítás/dekódolás) leállítása közben, nem sikerült leállítani. Próbáld újra megállítani, vagy várd meg, amíg a művelet befejeződik. | ||||||||||||||||||||||||
ERR_SRV_UPL | Egy végzetes hiba lépett fel a fájlok (kép és/vagy adat) a szerverre való feltöltése közben. Próbáld újra a titkosítást/dekódolást! | ||||||||||||||||||||||||
ERR_SRV_DWN | Egy végzetes hiba lépett fel a fájlok (kép és/vagy adat) a szerverről való letöltése közben. Próbáld újra a titkosítást/dekódolást! | ||||||||||||||||||||||||
ERR_IMG_CNV | Egy végzetes hiba történt a kép generálásakor, nem sikerült a titkosítás. Próbáld újra! | ||||||||||||||||||||||||
ERR_LRG_DAT |
Túl nagy adatot szeretnél titkosítani egy ahhoz túl kicsi képre. Növeld a felülírandó biteket (minél nagyobb, annál több adat fér a képre, de a kép minősége is annál inkább romlik), tölts fel nagyobb képet vagy kisebb adatot. Ha ez a hiba akkor jött elő amikor a képgenerálás vagy a teljes kép kitöltése funkció be volt kapcsolva, és anélkül ráférne az adat a képre, a képkódoló hibásan működik. A képkódoló maximális kapacitása 4 GB (4 294 967 295 bájt), ennél nagyobb adatot nem lehet titkosítani. |
||||||||||||||||||||||||
ERR_XHR_STATUS | A szervernek küldött kérés közben egy hiba lépett fel. Próbáld újra a titkosítást/dekódolást. |
Hogyan működik a képkódoló?
Az RGB színek
Egy kép pixelekből áll. Minden pixel pedig piros, zöld és kék komponensekből (r, g, b). Egy pixel színét úgy határozhatjuk meg, hogy megadjuk a három komponens értékét 0-255-ig. Így egy színt például így jelölhetünk: rgb(96, 153, 211).Karakterkódok
Ugyanígy minden karaktert is le tudunk írni számként írni, 0-255-ig terjedő számok sorozataként. A legtöbb betűt le tudjuk írni 1 bájton (1 db 0-255-ig terjedő számként), de néhány karaktert (pl.: ű, ♪) 2 vagy több bájton (több 0-255-ig terjedő számként) tudjuk csak leírni.97
; binárisan:
01100001
A bináris számrendszer
Ezeket a 0-255-ig terjedő számokat le tudjuk írni binárisan is, egyekkel és nullákkal. A 0-át 00000000
, a 255-öt 11111111
-ként tudjuk leírni. Az összes szám leírásához 0-255-ig csak 8 bináris számjegyre van szükségünk.
A 2-es számrendszerben a helyiértékek nem 10 hatványok (1, 10, 100, 1000...), hanem 2 hatványok (1, 2, 4, 8, 16, 32...).
Például az 123 tízes számrendszerben 1*100 + 2*10 + 3*1 = 123.
Bináris számrendszerben ezt 2 hatványok összegeként kell felírni: 1*64 + 1*32 + 1*16 + 1*8 + 0*4 + 1*2 + 1*1 = 1111011.
Mivel most egy bájtot szeretnénk binárisan leírni, ha a bináris szám nincs 8 számjegy hosszú, az elejét kipótoljuk 0-ákkal (ha egy szám elejére 0-kat teszünk, a szám értéke nem változik). Így ha átalakítjuk az előző példából a számot, 01111011
-et kapunk.
Tízes számrendszer | |||
---|---|---|---|
Helyiérték | 100 | 10 | 1 |
102 | 101 | 100 | |
Alaki érték | 0 | 0 | 1 |
Bináris számrendszer | |||||||
---|---|---|---|---|---|---|---|
Helyiérték | 64 | 32 | 16 | 8 | 4 | 2 | 1 |
26 | 25 | 24 | 23 | 22 | 21 | 20 | |
Alaki érték | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
A kódolás folyamata
Most, hogy ezeket átbeszéltük, nézzük is, hogyan működik a titkosítás!
Sorban kiolvassuk a kép pixeleinek színét és a színkomponensek értékét átalakítjuk binárissá. Eközben sorra vesszük a kódolandó karakterek kódját, és ezeket is átalakítjuk binárissá. Az aktuális színkomponens utolsó néhány bitjét (amennyi a felülírandó bitek száma) lecseréljük az aktuális karakter bitjeire. Például ha a felülírandó bitek száma 3, a színkomponensek utolsó 3 bitjét cseréljük le az aktuális karakterkód aktuális 3 bitjére. Ezt ismételgetjük, amíg elfogynak a karakterek.
Hogy jobban megértsd, készítettünk egy animációt, ami jól bemutatja, hogyan is működik a kódolás. Itt egy 5 x 3 pixelből álló képre fogjuk rákódolni a 'Valami' szót. Vidd az egeret a bemutató fölé, hogy elindítsd az animációt! Változtasd meg a felülírandó bitek értékét, hogy lásd, mit is jelent pontosan.
Kép | Adat |
---|---|
|
V
a
l
a
m
i
|
Szín: rgb(224, 82, 82) | Karakterkód: 86 |
1 1 1 0 0 0 0 0 | 0 1 0 1 0 1 1 0 |
X: 0,
Y: 0,
Komponens: 0,
Bit: 0
|
Bit: 0,
Bájt: 0
|
Dekódolás
A dekódolás sem bonyolultabb, mint a kódolás. Csak sorban ki kell olvasni a pixelek színkomponenseinek utolsó néhány bitjeit (felülírt bitek száma). Ha 8 összejött, kiolvastunk egy karaktert. A bináris számot visszaalakítjuk 10-es számrendszerbe, így megkapjuk a karakterkódot, ebből pedig megkapjuk a karaktert.
Egyéb adatok a képen
Hogy a dekódoláshoz ne kelljen beírni külön adatokat (például a felülírt bitek számát), ezek is el vannak tárolva a képen, pont úgy, ahogyan a szöveg vagy fájl. A képen eltároljuk a rákódolt adat hosszát (hogy hány karaktert kell kiolvasnia), a felülírt bitek számát, az adattípusát, és még néhány dolgot.