Steganography is an information security approach used to hide messages inside suitable covers in such a way that it is not known to attackers. The cover files may be any digital data including Image or Audio files. For steganography several methods exists where each of them has some advantages and disadvantages. Steganographic applications have varying requirements depending upon the steganography technique used. In this paper we present an overview of image steganography and steganalsysis, its uses and techniques. It also attempts to identify the requirements of a good steganographic algorithm and compares their performance with respect to requirements.