Kódolás
Dekódolás
Súgó
Hogyan működik?
Kép
Húzd ide a képet vagy
Böngészés
Feltöltve:
x :
Titkosítandó adat
Húzd ide a fájlt
Böngészés
Feltöltve:
Fájl beolvasása...
Titkosítás
Dekódolás
Eredmény
Dekódolt adat

Súgó

Mi a képkódoló és mire jó?

A képkódolóval elrejthetsz szöveget vagy bármilyen fájlt egyetlen képen anélkül, hogy azt bárki is észrevenné! Egy fotóra akár 7 megabájtnyi adat is ráférhet, feltűnő változások nélkül! Az elrejtendő adatot pedig akár jelszóval is lekódolhatjuk, így csak akkor lehet dekódolni, ha valaki tudja a helyes jelszót.

Hogyan?

A képek pixelein nagyon apró módosításokat végzünk, így nem észrevehető a változás, de mégis sok adat elfér rajta.
Részletesebben itt

Hogyan használjam?

Kódolás

  1. 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.
  2. Í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.
  3. Á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.
  4. 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.
  5. 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).
  6. 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

  1. 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).
  2. Írd be a jelszót (ha van)!
  3. Nyomj a dekódolás gombra! A folyamat befejezhető a leállítás gombbal.
  4. 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:
Adattípus Kiterjesztések Példa MIME típusok
Szöveg Minden szöveges fájl .txt, .html, .csv text/*
Média minden kép-, hang-, és videofájl .png, .jpg, .mp3, .wav, .mp4 image/*, audio/*, video/*
PDF csak .pdf fájl .pdf application/pdf
HTML Csak .html és .htm fájlok .html, .htmk text/html, text/htm
Egyéb fájl Bármilyen fájl .zip, .docx, .pptx, .xslx, .png, .mp3 *
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).
=
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.
karakter számokként: 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
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.

Titkosítás
Fájlok feltöltése
Adat titkosítása
Adat dekódolása
Kép pixeleinek szerkesztése
Kép pixeleinek olvasása
Kép létrehozása
Fájlok letöltése
Leállítás
Teljes idő: 00:00:00
Haladás: 0%
Pixelek: 0/0
Bájtok: 0/0
Részidő: 00:00:00
Hátralévő idő: 00:00:00
Leállítás
Ezzel megadhatod, hogy hány bitet írjunk felül (a 8-ból) egy pixel egy színének értékéből. Minél kisebb értéket adsz meg, a képen annál kevésbé fog látszódni a módosítás, de annál kevesebb adat is fér rá a képre. Minimum 1 maximum 8 értéket adhatsz meg.
Az alábbiakban láthatsz egy táblázatot ami bemutatja a felülírandó bitek következményét:
(mozgasd az egeret a négyzetek és a képek fölé, majd nyomd le, hogy láthasd az eltérést)
Érték Max eltérés Minta Példa Példakép kapacitása
8 max. ±255 760.45 KB
7 max. ±127 665.39 KB
6 max. ±63 570.33 KB
5 max. ±31 475.27 KB
4 max. ±15 380.2 KB
3 max. ±7 285.14 KB
2 max. ±3 190.08 KB
1 max. ±1 95.02 KB