Ответ 1
Стандартная реализация Ruby использует хеш мурмора для некоторых типов (целое число, строка)
Из string.c: 1901:
/* MurmurHash described in http://murmurhash.googlepages.com/ */
static unsigned int
hash(const unsigned char * data, int len, unsigned int h)
(обратите внимание, что эта функция, по-видимому, переименована в st_hash
в соединительной линии SVN)
Найдите rb_memhash
в исходном коде, если вы хотите узнать, где он будет использоваться. Раньше я использовал хеш Murmur2 в собственном проекте, он очень быстр и имеет хорошие криптографические свойства (но недостаточно хорош для использования в качестве криптографической хэш-функции).