Utilia

Ukryj tekst w obrazie

Ukryj tajną wiadomość tekstową w obrazie metodą steganografii LSB, opcjonalnie szyfrując ją AES-256-GCM, i odczytaj ją później. Lokalnie, bez przesyłania.

Ukryj wiadomość
Pojemność
Dodaj obraz, aby zobaczyć, ile tekstu może pomieścić.

Wynik jest zawsze zapisywany jako PNG: ponowna kompresja JPEG, WebP lub HEIC wymazałaby ukryte bity.

Odczytaj wiadomość

Jak ukryć wiadomość w obrazie

  1. Upuść obraz na pole albo kliknij je, aby go wybrać. Najlepszy jest PNG, ale zadziała każdy obraz, który otwiera twoja przeglądarka: wynik i tak zawsze zapisywany jest jako nowy plik PNG.
  2. W sekcji Ukryj wiadomość wpisz tekst w polu Tajna wiadomość. Wiersz Pojemność pokazuje, ile bajtów zajmuje wiadomość i ile może pomieścić obraz.
  3. Jeśli treść ma pozostać poufna, zaznacz Zaszyfruj wiadomość hasłem (AES-256-GCM) i wpisz Hasło. Opcja Pokaż hasło pozwala sprawdzić, co wpisano.
  4. Kliknij Ukryj wiadomość i pobierz PNG. Plik zostanie zapisany jako nazwa-hidden.png, a wiersz stanu poda, ile wartości kolorów zmieniono.

Jak odczytać ukrytą wiadomość

  1. Upuść plik PNG na to samo pole. Jeśli zawiera wiadomość ukrytą tym narzędziem, od razu po wczytaniu obrazu pojawi się odpowiednia informacja.
  2. Jeśli wiadomość była zaszyfrowana, wpisz hasło w polu Hasło (tylko jeśli wiadomość była zaszyfrowana).
  3. Kliknij Odczytaj ukrytą wiadomość. Tekst pojawi się w polu Ukryta wiadomość, gotowy do skopiowania.

Wszystko dzieje się w twojej przeglądarce: obraz, wiadomość i hasło nigdy nie są przesyłane.

Jak to działa: najmniej znaczący bit (LSB)

Każdy piksel przechowuje wartość czerwoną, zieloną i niebieską z zakresu od 0 do 255. To narzędzie zastępuje ostatni bit (najmniej znaczący) tych trzech wartości jednym bitem twojej wiadomości, piksel po pikselu w kolejności czytania. Na przykład wartość czerwona 200 to binarnie 11001000; zapisanie bitu 1 daje 11001001, czyli 201. Wartość koloru nigdy nie zmienia się o więcej niż 1 – tej różnicy oko nie dostrzeże.

Używane są tylko w pełni nieprzezroczyste piksele, a kanał alfa nigdy nie jest zmieniany. Piksele półprzezroczyste są pomijane, bo przeglądarki nie zachowują dokładnie ich najniższych bitów. Przed wiadomością narzędzie zapisuje 13-bajtowy nagłówek: sygnaturę, flagę informującą, czy wiadomość jest zaszyfrowana, długość oraz sumę kontrolną CRC-32, która wykrywa uszkodzone dane.

Pojemność wynosi około (liczba nieprzezroczystych pikseli × 3 ÷ 8) − 13 bajtów. Zdjęcie 1000 × 1000 mieści około 375 000 bajtów, czyli znacznie więcej niż jakakolwiek wiadomość tekstowa. Szyfrowanie dodaje 49 bajtów (wersja, liczba iteracji, 16-bajtowa sól, 12-bajtowy IV i 16-bajtowy znacznik uwierzytelniający). Przy szyfrowaniu klucz jest wyprowadzany z hasła algorytmem PBKDF2-SHA-256 (600 000 iteracji), a tekst szyfrowany AES-256-GCM, który wykrywa też każdą próbę modyfikacji.

Czego steganografia nie zapewnia

Steganografia ukrywa sam fakt istnienia wiadomości; sama w sobie nie jest silnym zabezpieczeniem. Takie sekwencyjne osadzanie w LSB łatwo wykryć narzędziami do steganalizy (test chi-kwadrat, analiza płaszczyzny LSB), a każdy, kto otworzy obraz w tym narzędziu, przeczyta niezaszyfrowaną wiadomość. Jeśli treść musi pozostać prywatna, użyj szyfrowania z długim, unikalnym hasłem: ochrona jest tak silna jak hasło. Nawet wtedy szyfrowanie chroni treść, a nie fakt, że coś zostało ukryte.

Ukryte bity są też delikatne. Ponowna kompresja JPEG lub WebP, zmiana rozmiaru, kadrowanie, zrzuty ekranu, filtry oraz większość mediów społecznościowych i komunikatorów (które ponownie kompresują i często konwertują obrazy) niszczą wiadomość. Udostępniaj PNG jako plik: w załączniku e-mail, przez link do chmury albo jako „dokument” w komunikatorze.

Odpowiedzialne korzystanie

Dobre zastosowania to zagadki, escape roomy i zadania CTF, oznaczanie własnych obrazów, nauka o tym, jak działają obrazy cyfrowe, oraz prywatne notatki. Nie używaj narzędzia do obchodzenia zasad w pracy lub szkole ani prawa i szanuj cudze obrazy oraz prawa autorskie.

Najczęściej zadawane pytania

Czy widać, że mój obraz zawiera wiadomość?

Nie gołym okiem: każda wartość koloru zmienia się najwyżej o 1. Narzędzia do steganalizy często jednak wykrywają osadzanie LSB, a samo to narzędzie informuje o obecności wiadomości zaraz po wczytaniu obrazu.

Dlaczego moja ukryta wiadomość zniknęła?

Obraz został najpewniej ponownie skompresowany, przeskalowany lub przekonwertowany, na przykład przez serwis społecznościowy, komunikator albo edytor zdjęć. Tylko dokładnie ten sam plik PNG zachowuje bity nienaruszone.

Czy mogę zacząć od zdjęcia JPEG?

Tak. Zdjęcie zostanie zdekodowane, a wynik zapisany jako bezstratny PNG. Zostaw go w PNG: ponowny zapis jako JPEG wymaże wiadomość.

Co się stanie, jeśli zapomnę hasła?

Wiadomości nie da się odzyskać. Nie ma tylnej furtki, a błędne hasło zostaje odrzucone przez kontrolę uwierzytelniania AES-GCM.

Dlaczego plik PNG jest większy od oryginału?

PNG jest bezstratny, więc zwykle zajmuje więcej niż JPEG z tym samym zdjęciem. To cena za zachowanie każdego ukrytego bitu.