What is Ruby\'s hash function algorithm?
The standard Ruby implementation uses the Murmur hash for some types (integer, string)
From string.c:1901:
/* MurmurHash described in http://murmurhash.googlepages.com/ */
static unsigned int
hash(const unsigned char * data, int len, unsigned int h)
(note that this function seems to be renamed to st_hash
in the SVN trunk)
Search for rb_memhash
in the source code if you want to know where it gets used. I have used the Murmur2 hash in an own project before, it is very fast and has good cryptographic properties (but not good enough to be used as cryptographic hash function).