Underlayer › Online tool
Hide text in an image online — free steganography tool
Put a secret message inside a picture, or check a picture for a hidden message. It works right here in your browser: the image is not uploaded anywhere, and the result opens in the Underlayer app too.
Private by design: the image and the text are processed in this browser tab and are never uploaded. Closing the tab discards them.
How to hide text in an image
- Choose a picture. A photo with plenty of detail works best; bigger pictures hold longer messages.
- Type the message and pick a mode: Hidden if you will send the file as a document, Open if it will go through a messenger as a regular photo.
- Press Hide message and download the PNG.
- To read it, open the Read a message tab here, or open the picture in the Underlayer app.
What steganography is
Steganography is hiding a message inside something that looks ordinary, so nobody suspects there is a message at all. Encryption makes text unreadable; steganography makes it invisible. In digital pictures it means changing pixel values so slightly that the photo looks exactly the same.
How Hidden mode works (LSB in plain words)
Every pixel stores its color as three numbers — red, green and blue — from 0 to 255. Changing a number by 1 shifts the color by an amount the eye cannot see. LSB (least significant bit) steganography uses that last, smallest bit of a number to carry one bit of the message.
Underlayer turns the text into bytes (UTF-8, so any language and emoji work), adds a short marker so the reader knows where the message starts and ends, and writes the bits into the lowest bit of the green channel of one pixel in every 8×8 block. Extra copies go into other pixel patterns, and the reader cross-checks them. Before writing, the picture is re-saved once at high quality; the result looks the same as the original but is not a byte-for-byte copy.
The cost is capacity: one bit per 64 pixels. A 1080×1080 photo has room for about 18,000 bits, and the reader takes messages up to 740 bytes — about 740 Latin letters or 370 Cyrillic ones.
Why messengers break hidden messages
Hidden-mode data lives in the finest pixel details, and those are exactly what JPEG compression throws away. Telegram, WhatsApp, Instagram and most social networks recompress photos to save traffic, and the hidden bits are overwritten. In our tests, re-saving a Hidden-mode picture as JPEG — even at quality 90 — erased the message every time. That is also why the tool gives you a PNG.
| Usually survives | Usually destroys a Hidden-mode message |
|---|---|
| Sending as a file or document, email attachments, cloud drives, USB | Sending as a regular photo in messengers, posting to social networks, screenshots, editing, resizing, converting to JPEG |
When to use Open mode
Open mode does not hide the fact that there is a message. It draws a frame of colored squares around the picture; each square's color encodes two bits. Bold colors on a black background survive recompression: in our tests the message was still readable after the picture was re-saved as JPEG at quality 75. Use it when the picture will be sent as a regular photo through Telegram or WhatsApp.
The frame holds less text on small pictures — about 90 characters on 640×480, 280 on 1080×1080 and 560 on 1600×1200 — and strong downscaling of a small picture can still break it.
Hiding is not encrypting
Underlayer has no password and does not encrypt. Anyone who opens the picture in Underlayer, or on this page, can read the message, and statistical analysis can reveal that the pixels were modified. Use it for notes, games and quiet watermarks. If the text itself must stay secret, encrypt it with a separate tool first and hide the encrypted text.
Find a hidden message in a picture
The Read a message tab checks a picture for both Hidden-mode and Open-mode messages made with Underlayer — on this page or in the app. It cannot read messages hidden with other programs, because each program uses its own format. If nothing is found, the picture probably has no Underlayer message or was compressed after the message was hidden.
The same format as the Underlayer app
This page runs the same hiding and reading code as the Underlayer app for Android and iOS, so you can hide a message on a computer and read it on a phone, or the other way round. The app adds sharing from the gallery and other apps, so you can hide or read a message without saving files first. A Russian version of this tool, with tips for Telegram, WhatsApp and VK, is at стеганография онлайн.
Ideas for using it
- A note or a riddle inside a photo for a friend or a scavenger hunt.
- A quiet watermark — your name or a date inside your own pictures.
- A short message that does not stand out in a shared photo album.
FAQ
Is this tool free? Are my images uploaded?
It is free, with no sign-up and no watermark. The image and the message never leave your device: everything is processed by JavaScript in your browser, and nothing is sent to a server.
Can the Underlayer app read a message hidden on this page?
Yes. The page runs the same hiding and reading code as the app, so a picture made here opens in the app and a picture made in the app opens here — as long as it was not compressed on the way.
Why does it say no hidden message was found?
Either nothing was hidden in the image, the message was hidden by a different program, or the image was recompressed — for example sent as a photo through a messenger or posted to a social network. Recompression erases Hidden-mode messages.
Can it read messages hidden by other steganography tools?
No. Every steganography program uses its own layout and markers. This tool reads messages hidden with Underlayer.
Is a hidden message the same as an encrypted one?
No. Underlayer does not encrypt and has no password: anyone who opens the picture in Underlayer or on this page can read the message. For confidential text, encrypt it first and hide the encrypted text.
Why did my hidden message disappear after sending the photo?
The messenger recompressed the photo. Send the PNG as a file or document, or use Open mode.
How long can the message be?
Up to 740 bytes: about 740 Latin characters or 370 Cyrillic ones. Hidden mode also needs enough pixels, and Open mode fits less text on small images — roughly 90 characters on a 640×480 picture and about 280 on 1080×1080.
Why is the result a PNG file?
PNG is lossless, so the changed pixels are stored exactly. Saving as JPEG would recompress the picture and erase a Hidden-mode message.