from wikipedia: http://en.wikipedia.org/wiki/Cryptographic_hash_function
The properties
Most cryptographic hash functions are designed to enter a string of any length as input and to obtain a hash value of a fixed length. The cryptographic hash function must withstand all known types of cryptanalytic attacks. At a minimum, it should have the following Properties:
Preventive Resistance Given the hash of h, it is difficult to find any message m such that h = hash (m). This concept is related to the one-way function concept. Functions that do not have this property are vulnerable to attack prototypes.
Resistance to the second opening When entering m 1 it should be difficult to find another input m 2 - where m 1 ! = M 2 - such that hash (m 1 ) = hash (m 2 ). This property is sometimes called weak collision resistance, and features that lack this property are vulnerable to second-providence attacks.
Resistance to collision . It is difficult to find two different messages m 1 and m 2 so that hash (m 1 ) = hash (m 2 ). Such a pair is called a cryptographic collision hash. This property is sometimes called strong collision resistance. This requires a hash value of at least twice that is required for resistance to providence, otherwise collisions can be detected by a birthday attack.
source share