In the examples I have used a hash key based on MD5 hashing.
There are a number of hashing algorithms that produce differing hash results
Probably the best would be a Jenkins 64 bit hash or Spookyhash or MurmurHash.
The reasoning behind this is that these functions result in very reliable near perfect hashing with a numeric result.
Numeric are faster when used in a relationship.
This makes them the ideal choice – however they are not always available in the system that you wish to implement on.