You have a photo. You have a message. And you want nobody to know the message is there — not in the filename, not in the metadata, not in anything a casual viewer would ever find. That's exactly what image steganography does.
Hiding text specifically? The dedicated Text-in-Image Hider is purpose-built for this — it adds adaptive LSB encoding, a post-encode PSNR/SSIM quality report, and chi-square vulnerability scoring that the general image encoder doesn't have.
For hiding files (images, PDFs, binaries) inside images, use StegoToolkit's Image Steganography Hider.
No software to install. No files uploaded to any server. The entire process runs locally in your browser.
What Is Image Steganography?#
Image steganography is the practice of hiding data inside an image file in a way that's visually undetectable. The image looks completely normal to anyone who views it. Only someone who knows the secret is hidden — and has the right tool to extract it — can read the message.
The technique most commonly used is LSB steganography (Least Significant Bit). Every pixel in a digital image is stored as three numbers: red, green, and blue values, each ranging from 0 to 255. The "least significant bit" is the last binary digit of each number. Changing it alters the colour value by just 1 out of 255 — a difference completely invisible to the human eye.
By modifying those least significant bits across hundreds of pixels, a hidden message can be encoded into the image without any visible change.
How to Hide Text in an Image Online — Step by Step#
→ Open the Image Steganography Hider
Step 1: Upload Your Image#
Drag and drop any PNG or BMP image onto the upload area, or click to select a file. These formats are lossless, meaning the pixel data is preserved exactly. JPEG is not suitable for steganography because JPEG compression rewrites pixel values during save, which destroys the hidden data.
The tool shows you the image dimensions and the maximum payload capacity — how many characters of text can be hidden in that specific image.
Step 2: Type Your Secret Message#
In the payload field, type the text you want to hide. This can be anything: a password, a private note, a URL, coordinates, or even a small block of code. The capacity bar shows how much of the available space you're using.
Step 3: Choose Encoding Options#
The tool offers several configuration options:
- Bit depth — use 1 LSB for maximum invisibility, 2–4 LSBs for larger payloads with a slight increase in detectability
- Colour channels — spread the data across red, green, and blue channels for better capacity and distribution
- Encryption — optionally encrypt your message with AES-256 before embedding it, so even if someone extracts the data they can't read it without the password
For most use cases, the default settings (1 LSB, all channels, no encryption) are fine.
Step 4: Encode and Download#
Click Encode. The tool processes the image entirely in your browser using a Web Worker — your image is never sent anywhere. When complete, click Download to save the stego image.
The resulting file is a normal PNG. Share it anywhere — email, messaging apps, social media. Nothing about it looks different from the original.
How to Extract the Hidden Message Later#
To retrieve the message, go to StegoToolkit's Image Steganography Extractor and upload the stego image. The decoder reads the same LSB positions and reconstructs the hidden text. If you encrypted it, you'll need to enter the password.
When Would You Actually Use This?#
Privacy and sensitive communication. Encryption protects content but announces that something is encrypted. Steganography hides the fact that there's anything to read at all.
Digital watermarking. Embed a unique code into images you share to track if they're being redistributed without permission. If someone reposts your photo, you can extract the watermark and prove ownership.
CTF challenges. Image steganography is one of the most common techniques in Capture The Flag competitions. Images containing hidden flags are a staple of steganography CTF categories.
Archival metadata. Photographers sometimes hide authorship or licensing data inside images where it travels with the file regardless of whether EXIF data is stripped.
Why JPEG Cannot Be Used — The Technical Reason#
JPEG compression works by dividing the image into 8×8 pixel blocks, transforming each block into frequency coefficients (via the Discrete Cosine Transform), and then quantising those coefficients — rounding them to reduce precision and file size. When a JPEG is decoded, the coefficients are reconstructed from those rounded values. The pixel values you get back are an approximation of the originals, not the originals themselves.
This means: any LSB values you write into pixel data before saving as JPEG will be overwritten by the quantisation reconstruction. The pixel that was RGB (200, 150, 100) becomes (199, 151, 98) after JPEG encode/decode — different LSBs, corrupted payload.
PNG stores pixel values in lossless compressed streams. The pixel value you write is the pixel value you read back. This is the fundamental reason PNG works and JPEG doesn't. The tool enforces this by rejecting JPEG uploads and explaining why.
What Competitors Don't Cover: Detectability Scoring#
Most "hide text in image" tools embed and download — they don't tell you how detectable the result is. StegoToolkit runs a chi-square vulnerability check immediately after encoding and reports a stealth score. This gives you an objective measure of detection risk under standard steganalysis before you share the image.
If the stealth score is low (high detection risk), you can reduce the payload size, drop to 1-bit depth, or enable PRNG pixel ordering — all from the same interface — and re-encode until the score improves. No other browser-based LSB tool offers this feedback loop.
Is Steganography Detectable?#
Standard LSB steganography can be detected by statistical analysis tools — this is called steganalysis. Tools like chi-square attack analysis look for statistical anomalies in pixel distributions. If you need strong undetectability, combine steganography with encryption, use lower bit depths, and avoid predictable embedding patterns.
For a deep dive into detection, see How to Detect Steganography in Any File Online — or run your stego image through the Steganography Analyzer to see how it scores.
Image Steganography vs Encryption: Key Difference#
Encryption scrambles data so it can't be read. Steganography hides data so it can't be seen. The best security combines both: encrypt your message first, then hide the ciphertext inside an image. Even if someone detects that steganography was used, they still can't read the content without the key.
StegoToolkit's image steganography hider supports optional AES-256 encryption as part of the encoding step — toggle it on in the Security Options panel.
Start Hiding Your Message#
Everything covered in this guide happens in your browser — no accounts, no uploads, no servers.
→ Hide text in an image now — Image Steganography Hider
If you received a stego image and need to extract the hidden content, use the Image Steganography Extractor instead.
When Hiding Fails#
If the encoded image looks visually different from the original, you used too high a bit depth or too large a payload. Drop to 1 LSB and keep the payload under 20% of the image's capacity. If someone tries to extract from your image and gets garbled output, they may have the wrong bit depth or channel settings — share the encoding parameters along with the image so the recipient can configure the extractor correctly.
Sharing the image through Instagram, WhatsApp, or Twitter will destroy the hidden data — those platforms re-compress images as JPEG. Always share as a file attachment via email, Google Drive, Dropbox, or Telegram.
Frequently Asked Questions#
How much text can I actually hide in an image?
At 1-bit depth across RGB channels, capacity is roughly (width × height × 3) / 8 bytes. A 1920×1080 PNG holds about 750 KB of text — far more than any typical message needs.
Will the image look visually different after hiding text? At 1-bit depth, no — the colour change per pixel is 1 out of 255, completely invisible to human eyes. At 4-bit depth you may see faint noise in flat-colour areas. Stick with 1-bit for anything that needs to look natural.
Does this work with JPEG images? JPEG cannot be used as a carrier. JPEG's lossy compression recalculates pixel values every time the file is saved, which destroys LSB data immediately. Upload PNG or BMP — the tool rejects JPEG files and explains why.
Does AES encryption change the image size? No. Encryption happens before embedding — the encrypted payload is still embedded in the same number of pixels. Enabling encryption does not increase file size or reduce capacity.