openstego (the free steganography solution)

Note: openstego doesn't work with openjdk.

OpenStego is a tool implemented in Java for generic steganography,
with support for password-based encryption of the data.

Features:

 - OpenStego is written in pure Java and should run on all platforms
   supported by java. It has been tested on MS Windows and Linux,
   but should not have any problem on other platforms too. Please
   report bugs if you find any.
 - It supports password-based encryption of data for additional
   layer of security. DES algorithm is used for data encryption,
   along with MD5 hashing to derive the DES key from the password
   provided.
 - It uses a plugin based architecture, where various plugins can
   be created for different kind of Steganographic algorithms.
   Currently, it supports two plugins - LSB (Using Least Significant
   Bit of Image Pixels) and RandomLSB (Randomized LSB), but new
   plugins can be created for other algorithms like DCT, FFT, etc.
   Plugins can also be easily added for other type of cover files
   like Audio files.
 - LSB plugins support only 24 bpp images. Support for additional
   image formats (like BMP, TIF, etc.) could be added by installing
   Java Advanced Imaging (JAI).
 - LSB plugins also support generation of random images containing
   noise to be used as cover file. The size of the generated random
   image is the minimum possible size required to embed the given data.