Higher bits = more capacity but more visible artifacts. "Bits 0..N" uses multiple bit planes for up to 8x capacity.
Adds redundancy so hidden data can survive minor image edits. Higher parity = more resilience but uses more capacity.
Stego Image
Upload stego image
Upload the image containing the hidden message
or paste image URL
Password
Stego Audio (WAV)
Upload stego WAV
Upload the WAV containing hidden data
Advanced
Match the depth settings used during encoding
Tries 18+ extraction methods used by OpenStego, Python tutorials, and other tools
Image to Analyze
Upload image to analyze
View individual bit planes per channel
Bit Plane Controls
Result
Advertisement
What is Steganography?
Steganography is the art of hiding information within ordinary, non-secret data so that no one suspects the hidden content exists. The word comes from the Greek steganos (covered) and graphein (to write). Unlike encryption, which makes data unreadable, steganography conceals the very existence of the secret message.
The practice dates back to ancient Greece, where messages were tattooed on shaved heads and hidden under regrown hair. In the digital age, steganography embeds data in images, audio, video, or text files. This tool uses digital image steganography, hiding text messages in the pixel data of images.
Steganography is not a replacement for encryption. For maximum security, combine both: encrypt your message first (using the password option), then hide the encrypted text in an image.
How LSB Encoding Works
Least Significant Bit (LSB) encoding is the most common method for image steganography. Every pixel in a digital image is made up of color channels (Red, Green, Blue), each stored as an 8-bit value from 0 to 255. The last bit of each byte is the "least significant" because changing it only shifts the color value by 1 out of 256 -- a difference invisible to the human eye.
This tool converts your message into binary, then replaces the last bit of each RGB channel with one bit of the message. A 4-byte length header is stored first, telling the decoder how many bytes to read. For an 800x600 pixel image, this provides approximately 180KB of storage capacity -- enough for tens of thousands of words.
Original pixel: R=145 (10010001), G=200 (11001000), B=78 (01001110)
With hidden bits: R=144 (10010000), G=201 (11001001), B=79 (01001111)
Color change: imperceptible to the human eye
Security and Privacy
This tool runs 100% client-side in your browser. No images, messages, or passwords are ever uploaded to any server. All processing happens locally using the HTML5 Canvas API and JavaScript. You can verify this by disconnecting from the internet and confirming the tool still works.
The optional password protection uses AES-256-GCM authenticated encryption via the Web Crypto API. Your password is derived into a 256-bit key using PBKDF2 with 100,000 iterations of SHA-256. This provides strong, industry-standard encryption for your hidden messages. Older images encoded with XOR encryption are still supported for backward compatibility.
Tips for Best Results
Use PNG Format
PNG uses lossless compression which preserves every pixel exactly. JPEG compression can destroy hidden data. Always save and share stego images as PNG.
Larger Images = More Capacity
Each pixel stores 3 bits. An 800x600 image holds ~180KB. For longer messages, use a higher resolution cover image.
Use a Password
Even if someone suspects steganography, a password-protected message will appear as random bytes without the correct key.
Enable Compression
Base64 compression adds a layer of encoding that makes raw extraction more difficult and improves cross-tool compatibility.
How to Use This Steganography Tool
1
Hide a Message in an Image
Make sure Image is selected at the top and you are in Encode mode.
Upload a cover image (PNG, JPEG, or BMP) or click one of the auto-generated patterns (Gradient, Mesh, Geometric, Noise).
Type your secret message in the text area. The capacity meter shows how much space is available.
Optional: Set a password for AES-256 encryption, enable Compress (Deflate) to shrink the payload, or enable Reed-Solomon error correction.
Optional: Adjust Bit Depth — use At bit N (single bit) for stealth or Bits 0..N (multi-bit) for more capacity.
Click Hide Message and download the resulting PNG. It looks identical to the original.
2
Extract a Hidden Message
Switch to Decode mode and upload the stego image.
If the message was encoded with a non-default bit depth, expand the Advanced section and set the Decode Bit Depth to match the encoding settings.
Enter the password if one was used during encoding.
Click Extract Message. RS-protected messages are auto-detected and errors are corrected automatically.
If a file was embedded, you will see a download link with the original filename.
3
Embed a File (PDF, ZIP, TXT)
In Encode mode, switch to the File sub-tab.
Drag-and-drop any file or click to browse. The tool auto-upscales the cover image if needed.
Click Hide File. The file and its original filename are embedded in the image.
4
Audio WAV Steganography
Click Audio WAV at the top to switch from Image mode.
Upload a PCM WAV file (8/16/24/32-bit, mono or stereo).
Type your message or select a file to embed, set bit depth, then click Hide Message.
Download the output WAV — it sounds identical to the original but carries your hidden data.
Feature Quick Reference
Bit Depth 0 (LSB) — Default, virtually undetectable. Best for covert use.
Bits 0..3 — 4x capacity with minimal visible artifacts. Good balance.
Deflate Compression — Reduces payload 2-5x. Enable for long text messages.
Reed-Solomon ECC — Protects data from corruption. Use when sharing via social media or messaging apps.
AES-256 Password — Military-grade encryption. Data is unrecoverable without the password.
Forensic Scanner — Auto-detects 18+ stego formats. Use in Analyze mode for CTF challenges.
Frequently Asked Questions
Steganography is the practice of hiding secret information within ordinary data such as images or audio so that no one apart from the sender and recipient knows of its existence. This tool uses Least Significant Bit (LSB) encoding which modifies the least important bits of each color channel in image pixels or audio samples. Since these tiny changes are invisible to the human eye and inaudible to the ear, the carrier file looks and sounds identical but carries a hidden message.
Variable bit depth lets you embed data in bit positions 0 through 7 of each color channel instead of just the LSB. In At bit N mode you use a single bit position for stealth, while in Bits 0..N mode you use multiple bits per channel for up to 8x the standard capacity. Bit depth 0-2 is virtually undetectable, while depth 3-7 gives maximum capacity for CTF challenges or large payloads. The decode panel must use the same depth settings as encoding.
Yes! Switch to the Audio WAV medium at the top, then upload any PCM WAV file as a cover. The tool embeds data in the least significant bits of audio samples, supporting 8-bit, 16-bit, 24-bit, and 32-bit sample formats in mono or stereo. Variable bit depth works with audio too. The output WAV sounds identical to the original but contains your hidden message or file.
Reed-Solomon (RS) is an error-correcting code that adds redundant parity bytes so your hidden data can survive corruption. Enable it when sharing stego images via social media, messaging apps, or any platform that may recompress images. Choose Low (16B), Medium (32B), or High (48B) parity. RS uses GF(2^8) Galois field arithmetic with Berlekamp-Massey decoding to automatically detect and correct errors during extraction — no user intervention needed.
Enabling Compress (Deflate) applies real deflate compression to your message before embedding, reducing payload size by 2-5x for typical text. This means you can fit longer messages into smaller images or audio files. The tool uses the browser-native CompressionStream API for fast compression. On decoding, compressed data is auto-detected and decompressed transparently.
Your data is completely safe. This tool processes everything 100% client-side in your browser using the HTML5 Canvas API, Web Crypto API, and JavaScript. No images, audio files, messages, or passwords are ever uploaded to any server. All encoding, decoding, encryption, compression, and analysis happens locally on your device. You can verify this by disconnecting from the internet and confirming the tool still works.
For images at the default LSB depth, the capacity is (width × height × 3) / 8 bytes. An 800×600 image stores about 180 KB. Using Bits 0..N mode with higher depth multiplies capacity by up to 8x. For WAV audio, capacity depends on the number of samples and bit depth — a 10-second 44100 Hz mono WAV at LSB stores about 55 KB. The real-time capacity meter updates as you change depth settings. Enabling Deflate compression further increases effective capacity by 2-5x.
The forensic scanner is a universal decoder that automatically tries 18+ extraction methods to find hidden messages regardless of which steganography tool was used to encode them. It supports formats from OpenStego, Python steganography libraries, JavaScript tools, and various LSB encoding configurations including different channel orders (RGB, BGR), bit orders (MSB, LSB), length header formats (BE32, LE32, LE16), and terminators. Results are ranked by confidence score — ideal for CTF challenges and digital forensics.
Every coffee helps keep the servers running. Every book sale funds the next tool I'm dreaming up.
You're not just supporting a site — you're helping me build what developers actually need.