About this tool
This tool hides a secret text message inside an ordinary image and later pulls it back out, using least-significant-bit (LSB) steganography. Everything happens locally in your browser on an HTML canvas: the picture and your message never leave your device and nothing is uploaded to any server.
LSB steganography works by overwriting the least-significant bit of each color channel. The image is drawn to a canvas and its raw pixels are read; the message is converted to UTF-8 bytes and, bit by bit, those bits replace the lowest bit of the red, green and blue channels of successive pixels (the alpha/transparency channel is skipped to avoid visual artifacts). Changing only the lowest bit shifts each channel by at most 1 of 255, so the result looks identical to the eye. A 32-bit big-endian length header is written first so the decoder knows exactly how many message bytes follow. Each pixel carries 3 bits, so an image holds about floor(width x height x 3 / 8) bytes, minus the 4 header bytes.
To hide a message, pick "Hide message", choose an image, type your text and click Encode & Download to save a PNG. To recover it, switch to "Reveal message" and open a stego PNG; the hidden text is decoded automatically. The output must be PNG because it is lossless — a JPEG re-compresses the pixels and would wipe out the fragile least-significant bits, destroying the message.