If guaranteed unique hash code is required then it is not possible (possible theoretically but not practically). Hashes and hash codes are non-unique.
A Java String of length N has 65536 ^ N possible states, and requires
  an integer with 16 * N bits to represent all possible values. If you
  write a hash function that produces integer with a smaller range (e.g.
  less than 16 * N bits), you will eventually find cases where more than
  one String hashes to the same integer; i.e. the hash codes cannot be
  unique. This is called the Pigeonhole Principle, and there is a
  straight forward mathematical proof. (You can't fight math and win!)
But if "probably unique" with a very small chance of non-uniqueness is
  acceptable, then crypto hashes are a good answer. The math will tell
  you how big (i.e. how many bits) the hash has to be to achieve a given
  (low enough) probability of non-uniqueness.
Updated : check this another good answer : What is a good 64bit hash function in Java for textual strings?