Image steganography

On this page you may upload an image to be hidden inside another image by my hideimage program. Note that if you want to be secure, do not use this page. Your image will be sent in clear through the internet to my server. Anyone in between you and me (including me) can see the image. There is also an extremely small chance that my script can get confused and show somebody else your image. This is so unlikely that it's hardly worth mentioning, I'm just saying that if you want secure, don't use this page.

Update: I now have a self-signed SSL certificate. Visit this page over SSL if you want encryption, but be warned that my certificate is not signed by a root CA (so there is no way to be sure that there is no man-in-the-middle), and that I can still see your images, by necessity, as they are stored temporarily on the server.

The cover image and secret image parameters are self explanatory. Hidden bits is the number of bits to the byte of the secret image to use. The most significant bits will be chosen. The least significant bits of the cover image will be replaced by these. The XOR parameter specifies whether or not the least significant bits of the resulting image should be XOR'd by the most significant bits.

The output image will always be a PNG, and will be deleted at 3am, 6am, 9am, midday, 3pm, 6pm, 9pm, or midnight - whichever comes first. The image should only be accessible by your session, and cookies must be enabled in order for you to get the output.

Hide image:
Cover image:
Secret image:
Hidden bits: XOR last bits of pixel by first ones

To do the example of the tree and the cat from Wikipedia, download the tree image, select it in the file box, select 2 hidden bits, and ensure that XOR is not checked. Then click 'Go!' and you will be presented with the cat.

Unhide image:
Image:
Hidden bits: XOR last bits of pixel by first ones