Image Steganography Lab
Store a UTF-8 message in the least significant bit of either all three RGB channels or just the blue channel of a PNG. The browser reopens its generated PNG, checks the length and CRC-32, and shows the extracted text. Compare channel capacities, then experiment with a one-bit edit or JPEG recompression to see how the message can break. This is an educational format, not encryption, secrecy, tamper protection or a way to recover data after editing.
Key features
- PNG-only RGB and blue-channel LSB methods with separate byte capacities
- UTF-8 messages, including Korean and emoji, up to 8,192 bytes
- Reopen the generated PNG and check length, CRC-32 and UTF-8 round trip
- Extract from a separate PNG with explicit damage and unsupported-format errors
- One-bit damage and actual JPEG recompression trials
How to use
- Choose an opaque PNG or load the example; transparent pixels are flattened onto white.
- Choose RGB or blue-only mode, enter a short message and check byte capacity.
- Create the encoded PNG and let the browser reopen the file to verify extraction.
- Download the PNG, and select it again in the extraction section when needed.
- Try a one-bit change and JPEG conversion to observe checksum damage or header loss.
Use cases
- Learn how least significant bits work in lossless PNG pixels
- Compare the capacity of RGB and a single blue channel
- Observe how recompression and pixel editing affect embedded data
Frequently asked questions
Can I send secure messages with this tool?
No. Messages are not encrypted and anyone who knows the format can read them. CRC-32 checks for accidental damage; it is neither authentication nor tamper protection.
Why does it accept only PNG?
LSB data needs exact pixel values. JPEG uses lossy compression and can destroy the message. Even a PNG may lose it after color conversion, resizing or resaving in another app.
Why do transparent areas become white?
A browser can change RGB under transparent pixels while saving. This tool flattens onto white before embedding, so every output pixel is opaque. It does not preserve source alpha.
What does a CRC error mean?
The message length was readable, but extracted bytes do not match the stored check value. It does not mean the original text can be recovered.
How is this different from a watermark?
A watermark places visible text or a logo over an image. This lab changes pixel LSBs to store a short text string inside the file and read it back.
Privacy
The image and text are processed in this tool's browser memory and are not sent to this site's server API. The downloaded PNG contains an unencrypted message; review it before sharing.
Comments & questions