Image Steganography — Hide & Extract Secret Text in Images
Hide a secret message or file inside an ordinary-looking image, protect it with real AES-256 encryption, and extract it back later. Includes an Analyze tab so you can actually see how the detection and hiding techniques work.
📋 Important notes before you start
Steganography workspace
Hide secrets in pixels, reveal hidden payloads, or inspect bit-planes — all locally in your browser.
Cover image
Drag & drop, browse, or paste (Ctrl+V). JPG/PNG/WebP in — PNG out.
Drop your cover image here
Tap the button below or click anywhere in this area.
Clipboard paste supported · Ctrl+V / ⌘V
Secret content
0 characters
No file selected.
0 bytes usedcapacity: —
Password protection
Without a password, anyone who suspects this image has hidden data can extract it with any steganography tool. With encryption, they only get useless noise.
Bits per channel
1 bit is invisible but lower capacity. 4 bits hold much more data but can show faint visible artifacts.
Colour channels used
The alpha (transparency) channel is never used — many pipelines strip or normalize it, and fully-transparent pixels can be discarded.
Pixel ordering
Scattered mode uses your password to seed the pixel order — a password is required.
Working…
Cover image preview
Live canvas—
Result
Before / after (drag the handle)
Swipe left or right on the image to compare before / after
Stego image
Upload the PNG that might contain a hidden message.
Drop your stego image here
Tap the button below or click anywhere in this area.
Clipboard paste supported · Ctrl+V / ⌘V
Stego image preview
Scan readyUpload an image to inspect. Optionally upload a second "original" image to see an amplified pixel-difference map against a stego version.
Notice how, with sequential embedding, the LSB visualizer often shows a sharp boundary where the hidden message ends — with password-scattered embedding, no such boundary is visible. This is exactly why scatter mode is harder to detect.
LSB visualizer (amplified)
Shows only the least-significant bit(s) of each channel, stretched to full contrast. Random noise = likely nothing hidden (or well-scattered). Visible structure/boundaries = a red flag.
Bit-plane viewer
Bit 0 = least significant (where messages hide) … Bit 7 = most significant (the visible image).
Histogram & chi-square estimate
—
A basic chi-square "pairs of values" heuristic, not a rigorous forensic tool — professional steganalysis uses far more sophisticated methods.
How to hide a secret message in 4 steps
No install, no account, no upload — everything below runs on your own device.
Upload a cover image
Drag & drop, browse, or paste (Ctrl/Cmd+V) a JPG, PNG or WebP photo in the Hide tab.
Add your secret & password
Type a message or attach a file, then set a strong password — AES-256 encryption stays on by default.
Tune & embed
Optionally adjust bit depth, channels and pixel ordering, then click Hide Message and review the quality score.
Download & share safely
Save stego-image.png and send it as a file attachment — never as a re-compressed chat photo.
How steganography compares to other approaches
A quick reference for choosing the right tool — and understanding why this one combines several techniques instead of relying on just one.
Steganography vs. encryption
| Aspect | Steganography | Encryption |
|---|---|---|
| What it hides | The existence of a message | The content of a message |
| If discovered | Message is immediately readable | Message stays unreadable without the key |
| Looks like | An ordinary, unremarkable image | Obvious scrambled ciphertext |
| Best used | Combined with encryption, not instead of it | As the actual data-protection layer |
PNG vs. JPEG for steganography
| Aspect | PNG (recommended output) | JPEG |
|---|---|---|
| Compression | Lossless — every bit is preserved exactly | Lossy — discards data during compression |
| LSB data survives? | Yes, indefinitely, until edited | No — destroyed almost immediately |
| File size | Larger for photographic images | Smaller, but at the cost of exact bits |
| Safe to re-share as-is? | Yes, as a file/document attachment | Not applicable — never use as stego output |
LSB vs. other steganography techniques
| Technique | How it hides data | Trade-off |
|---|---|---|
| LSB (this tool) | Overwrites the lowest bit(s) of pixel colour values | Simple, high capacity, but statistically detectable at scale |
| DCT/frequency-domain | Hides data in transformed frequency coefficients (used by JPEG-based tools) | Can survive some re-compression, lower capacity, harder to implement |
| Spread-spectrum | Spreads data thinly across the entire image, like a watermark | Very robust to editing, but very low capacity |
| Metadata/EXIF hiding | Stores data in file headers instead of pixels | Trivial to find and strip — not real steganography |
Browser-based tool vs. desktop software
| Aspect | Browser tool (this page) | Desktop software |
|---|---|---|
| Install required | No | Yes, plus keeping it updated |
| Cross-platform | Any device with a modern browser | Usually built for one OS |
| Data leaves your device | Never — everything runs locally in JavaScript | Never (for legitimate offline tools), but installs local files/registry entries |
| Steganalysis built in | Yes — LSB visualizer, histogram, chi-square, bit-planes | Rare — usually a separate tool |
The complete guide to image steganography
What is image steganography?
Image steganography is the practice of concealing secret data — text, a password, a small file — inside an ordinary-looking image so that anyone glancing at it sees nothing unusual. The word comes from the Greek steganos ("covered") and graphein ("writing"): covered writing. Unlike encryption, which scrambles a message into obvious ciphertext, steganography hides the very fact that a secret exists. A photo with a hidden 5,000-character message looks pixel-for-pixel identical to the human eye as one without — the difference lives entirely in bits nobody normally inspects.
A short history of steganography
Hiding messages in plain sight long predates computers. Ancient Greek accounts describe messages tattooed on a messenger's shaved scalp, hidden once the hair grew back, and wax tablets scraped clean and re-carved with a hidden layer of text beneath a harmless cover message. Invisible inks — made from substances like lemon juice or milk that darken only when heated — were used for centuries in espionage and wartime communication. During the Second World War, intelligence services used "microdots": entire pages of text photographically shrunk to the size of a printed period and hidden inside ordinary letters. Digital image steganography, which emerged alongside consumer computing in the 1990s, is the direct descendant of these techniques — instead of ink or film grain, it manipulates the least-significant bits of pixel data, a medium invisible to the naked eye in exactly the same spirit as invisible ink was to the naked hand.
How image steganography works
A digital photo is just a large grid of numbers — every pixel stores a red, green and blue value, each from 0 to 255. Steganography tools exploit the fact that changing a color value by 1 (say, from 142 to 143) is imperceptible to human vision, while a computer can read that exact bit reliably. By systematically replacing the lowest bit(s) of chosen pixels with the bits of a secret message, a program can smuggle in kilobytes of data without visibly altering the image. Extracting the message later just means reading those same bits back out, in the same order, and reassembling them into bytes.
LSB (Least Significant Bit) steganography, explained
LSB is the specific technique this tool uses, and the one most commonly taught in introductory cybersecurity and digital forensics courses. Every 8-bit colour channel value has a "most significant bit" (worth 128, dominating how the colour looks) down to a "least significant bit" (worth only 1). This tool lets you choose how many of those low bits to use — from 1 bit per channel (invisible, lower capacity) up to 4 bits per channel (much higher capacity, with a small risk of faint visible artifacts in flat/plain areas, which the bit-depth preview strip lets you check before committing). It also lets you choose which colour channels participate (red, green, blue) and how pixels are ordered — sequential from the top-left (simplest, most statistically detectable), password-scattered (pseudo-random order seeded from your password, much harder to fingerprint), or texture-preferred (favouring busy, high-detail regions where small changes are naturally camouflaged by existing noise).
Encryption vs. steganography — use both
These two techniques solve different problems and work best together. Encryption (this tool uses real AES-256-GCM via your browser's Web Crypto API, with a password stretched through 200,000 rounds of PBKDF2) makes a message unreadable without the correct key — but an encrypted blob is obviously "something," inviting scrutiny. Steganography hides that something exists at all — but if someone does suspect an image and runs it through any generic LSB extractor, an unencrypted message comes out in plain text. Combining them means a suspicious image reveals nothing to a casual extractor, and even a determined attacker who does extract the payload is left with useless encrypted noise instead of your actual message.
Why use steganography at all?
Beyond espionage-movie scenarios, ordinary reasons people use steganography include: sending a private note to a friend without an obvious "look, a secret" flag; learning how a foundational digital-forensics technique actually works (this tool's Analyze tab exists specifically for that); digitally watermarking your own photos with an invisible ownership marker; embedding recovery information or metadata inside an image file itself rather than a separate document that could get lost; and, for security students and CTF (capture-the-flag) competitors, practicing both sides — hiding and detecting — of a well-known category of challenge.
Supported image formats
You can upload a cover image as JPG, PNG, or WebP — this tool re-renders it to a raw pixel canvas before embedding, so the input format doesn't matter. The output, however, is always a PNG, because PNG's lossless compression is the only common web format guaranteed to preserve your embedded bits exactly. BMP and TIFF are also lossless and would theoretically work, but they produce far larger files for no benefit over PNG in a browser context, which is why PNG is the standard choice for LSB steganography tools. Never convert, screenshot, or re-save the output as JPEG, and never send it through an app that silently re-compresses photos (see the WhatsApp/Instagram warning below) — any of those will destroy the hidden data.
How capacity is calculated
Capacity depends on three things: image size (more pixels means more places to hide bits), how many colour channels you use (red, green, blue — up to 3), and how many bits per channel you spend (1 to 4). Roughly, capacity in bytes ≈ (pixel count × channels used × bits per channel) ÷ 8, minus a small fixed header that stores the format version, encryption flag, bit-depth, channel mask and a SHA-256 integrity hash of your payload. The live capacity bar in the Hide tab calculates this exactly for your current image and settings, and turns red if your secret content (plus password encryption's small overhead) won't fit — at which point you can pick a bigger image, use more bits per channel, or shorten the message.
Password protection done properly
This tool's password field isn't cosmetic — it drives real AES-256-GCM encryption with a unique random salt and IV generated for every single hide operation, and the key is derived from your password using PBKDF2 with 200,000 iterations (a deliberately slow, computationally expensive process designed to make password-guessing attacks impractical). If you also choose password-scattered pixel ordering, the same password (via a separate SHA-256-derived seed, never the raw password itself) determines the pseudo-random order pixels are used in — meaning someone would need both the correct password and knowledge of the embedding scheme to even locate the hidden bits, let alone decrypt them.
Security best practices
- Always keep encryption on, and use a genuinely strong, unique password — not something reused from another account.
- Prefer password-scattered ordering over sequential for anything more sensitive than a casual note; sequential embedding is the easiest pattern for statistical steganalysis to flag.
- Keep bit-depth at 1 or 2 bits per channel unless you specifically need the extra capacity of 3–4 bits — lower bit-depth is both less visually risky and less statistically detectable.
- Send the resulting PNG only as a raw file/document attachment (email, cloud storage link, direct file transfer) — never as an in-app "photo" through a messaging platform that re-compresses images.
- Treat this as a privacy tool, not an unbreakable one — see the Digital Forensics section below before relying on it for anything high-stakes.
Data integrity & corruption detection
Every hide operation stores a SHA-256 hash of your (optionally encrypted) payload in the image header. When you reveal a message, the tool recomputes that hash from the extracted bytes and compares it — if they don't match, you get a clear "corrupted" error instead of silently returning garbage. This catches the most common real-world failure mode: an image that was resized, cropped, filtered, or re-compressed after hiding, all of which alter pixel values enough to flip embedded bits without necessarily being visible to the eye.
Privacy: what actually happens to your data
Nothing. Your cover image, secret message or file, and password are read directly into your browser's memory via the File API and Canvas API, processed with JavaScript's Web Crypto API for encryption, and never touch a network request. There is no server component to this tool at all — open your browser's developer tools and watch the Network tab while you use it; you'll see no outgoing requests carrying your data. Closing the tab clears everything from memory, and nothing is written to disk unless you explicitly click download.
Why browser-based processing makes sense here
For a tool that handles secrets and passwords, "nothing ever leaves your device" is a much stronger privacy guarantee than "we promise not to log it" from a server-based tool. Modern browsers expose everything needed for real steganography and cryptography — the Canvas API for pixel-level image access, the File API for local file handling, and the Web Crypto API for standards-compliant AES-GCM and PBKDF2 — meaning there's no technical reason a tool like this needs a backend at all, and every reason not to have one.
Digital forensics & detectability
Image steganography is a well-studied topic in digital forensics, and detection ("steganalysis") is an active field on the other side of the same coin. Statistical techniques like chi-square analysis (built into this tool's Analyze tab) look for patterns LSB embedding tends to leave behind — specifically, sequential LSB replacement tends to equalize the frequency of adjacent pixel values in a way natural image noise doesn't. More advanced forensic techniques include RS (Regular-Singular) analysis, sample-pair analysis, and machine-learning classifiers trained on large datasets of known stego images. The honest takeaway: LSB steganography, including scattered and texture-aware variants, can raise suspicion under serious forensic scrutiny, especially at higher bit-depths or on images that get analyzed at scale. It is well suited to casual privacy and learning; it is not a substitute for dedicated operational security against a well-resourced adversary.
Cybersecurity applications
Beyond personal use, steganography shows up throughout cybersecurity: security courses and certifications use LSB embedding as the canonical teaching example for both hiding and detecting hidden data; CTF (capture-the-flag) competitions frequently include steganography challenges built on exactly this kind of pixel manipulation; malware researchers study steganographic techniques because some malicious tools have used image-embedded payloads to smuggle data past naive content filters (which is precisely why security teams run steganalysis on inbound images in some high-security environments); and digital watermarking — a legitimate, closely related technique — uses steganography-like embedding to mark ownership of digital media in a way that (ideally) survives normal editing.
Who actually uses image steganography
Educational uses: students and self-learners exploring how hidden-data techniques and their detection actually work at the byte level, rather than reading about it abstractly. Business uses: lightweight internal watermarking of proprietary images, or embedding recovery contact information directly inside a distributed asset. Personal uses: sending a private note, password, or small file to a specific person without an obviously "encrypted" attachment drawing attention, or as a fun, technically interesting way to share a surprise or puzzle.
Common mistakes to avoid
- Sharing the image through chat apps as a "photo" instead of a file attachment — this is by far the most common reason people report a message "not working."
- Editing the output afterward — any crop, resize, filter, or re-save destroys embedded bits, even if the visual change looks trivial.
- Skipping the password "because the message isn't that important" — anyone who suspects steganography and runs a generic extractor gets your message in plain text.
- Choosing 4-bit depth on a low-detail image (e.g. a plain sky or solid-colour background) just to fit more data — this is exactly where artifacts are most likely to become faintly visible.
- Forgetting the password used for scattered ordering — without it, the pixel order used during embedding cannot be reconstructed, and the data is unrecoverable even by this same tool.
Troubleshooting
- "No hidden message detected" — the image was likely re-compressed after hiding (check how it was sent/saved), or it doesn't contain a message from this tool. Try the brute-force check in the Reveal tab as a last resort.
- "Message too large for this image" — use a bigger cover image, increase bits per channel in Advanced settings, enable more colour channels, or shorten your secret content.
- "Incorrect password" on reveal — double-check for typos, extra spaces, or caps-lock; passwords are case-sensitive and there is no recovery option by design.
- "Data is corrupted" / checksum mismatch — the image was very likely modified after hiding (resized, filtered, re-compressed); you'll need the original stego-image.png, unedited.
- Page feels slow on a very large photo — this is expected; bit-level pixel processing is CPU-intensive. Very large images (over ~12 megapixels) are automatically downscaled before embedding to keep the page responsive.
Key features
Summary
Image steganography hides the existence of a message inside an ordinary photo by manipulating pixel bits too small for human eyes to notice; encryption hides its content even if discovered. This tool gives you both, plus the transparency to actually see how hiding and detection work through the Analyze tab, entirely inside your own browser. Upload a cover image above to get started.
Related security & privacy tools
Frequently asked questions
What is image steganography?
Steganography hides secret data inside a cover image so casual viewers don't know a message exists. This tool uses LSB embedding — modifying the tiniest colour bits where changes are visually imperceptible.
Is it safe to hide messages this way?
All processing runs 100% in your browser — nothing is uploaded. But steganography only hides existence; always enable AES-256 password encryption so extracted data stays unreadable without your password.
Why must the output be PNG?
LSB data lives in the least-significant bits of pixels. PNG is lossless and preserves those bits exactly. JPEG compression destroys them. You can upload JPG as cover, but output is always PNG.
Why doesn't it work after sending on WhatsApp, Instagram or Facebook?
These apps re-compress photos as JPEG when sent normally, destroying hidden bits. Send the PNG as a document/file attachment, or use email or cloud storage instead.
Can someone detect the hidden message?
Yes, potentially. Statistical tools (like our chi-square analysis) can flag likely steganography, especially at higher bit depths. This is a learning tool, not forensic-grade undetectability.
Do I need a password?
Strongly recommended and on by default. Without one, anyone who suspects hidden data can extract it. With AES-256, they only get encrypted noise.
What is LSB steganography?
LSB replaces the lowest bits of RGB colour channels with secret data bits. These bits contribute minimally to perceived colour, so the image looks unchanged.
Can I hide a file, not just text?
Yes. Switch to File mode in the Hide tab. Any file type can be embedded with filename and MIME preserved, and downloaded again from the Reveal tab.
Can I hide a password or other short secret?
Yes — a password or short note is just text, and text is the simplest and lowest-capacity-demand thing to hide, so it works reliably even in small cover images.
Is real encryption included, or is this just hiding?
Both. When enabled, your payload is encrypted with AES-256-GCM (via a password stretched through 200,000 rounds of PBKDF2) before it's ever embedded, so extraction alone doesn't reveal readable content.
Can I extract the hidden data later, or does it expire?
There's no expiry. As long as the PNG file itself is never edited, resized, or re-compressed, you can reveal the hidden data at any time in the future using this same tool.
Does this tool work offline?
Yes, once the page has loaded. Hiding and revealing both run entirely in your browser's memory with no network requests involved.
Is it free to use?
Yes, completely free with no sign-up, no watermark, and no limit on how many times you use it.
Can I use very large images?
Yes. Images larger than roughly 12 megapixels are automatically downscaled before embedding so the page stays responsive — you'll see a notice if this happens.
Can I hide a ZIP file or other binary file type?
Yes. File mode accepts any file type — ZIP archives, documents, small config files — and preserves the original filename and MIME type for download after extraction.
Can hidden data be removed or "cleaned" from an image?
Any edit — resizing, cropping, filtering, or re-saving as JPEG — will destroy the embedded bits. This tool doesn't include a dedicated "strip hidden data" mode, but re-saving through almost any image editor achieves the same result.
Is this secure enough for genuinely sensitive information?
With encryption and password-scattered ordering enabled it's reasonably strong for casual and personal privacy, but treat it as a learning and hobby-grade tool, not a substitute for dedicated security software when the stakes are high — see the Digital Forensics section above.
Can beginners use this without technical knowledge?
Yes. The default settings (1-bit depth, all channels, sequential order, encryption on) work well out of the box — Advanced settings are entirely optional for more experienced users.
What browsers are supported?
Any modern browser with Canvas and Web Crypto API support — recent Chrome, Edge, Firefox and Safari all work, on both desktop and mobile.
Does it work on mobile phones?
Yes, the interface is fully responsive, including touch-friendly drag-and-drop alternatives (tap to browse) and a mobile-optimised control layout.
Is there a limit on how much data I can hide?
Capacity depends on your image size and embedding settings — the live capacity bar in the Hide tab shows exactly how many bytes you can fit before you start typing.
Does hiding data change the visible image quality?
At 1–2 bits per channel, no visible difference — the PSNR (peak signal-to-noise ratio) shown after hiding is typically well above 45 dB, meaning "visually identical." Higher bit-depths trade a little more risk of faint artifacts for extra capacity.
Can I hide more than one message in the same image?
Not in a single pass — each hide operation embeds one payload (text or one file) per image. To combine multiple secrets, bundle them into one file (for example a ZIP) and hide that as a single file payload.
Are my images, messages or passwords stored anywhere?
No. Nothing is uploaded, logged, or saved to any server — everything stays in your browser's memory for the current session only.
Can I batch-process multiple images at once?
Not currently — each image is hidden or revealed individually, one at a time, through the Hide and Reveal tabs.
Is image steganography safe and private?
All processing runs 100% in your browser — your image, message, and password are never uploaded. However, steganography only hides the existence of data; always enable AES-256 password encryption so extracted data remains unreadable without your password.
Ready to hide your first secret message?
No sign-up, no install, no upload — just an image, a message, and a password.
🔏 Start hiding a message