Какую хеш-функцию использует Ruby? - PullRequest
13 голосов
/ 17 июля 2010

Что такое алгоритм хеш-функции Ruby?

1 Ответ

18 голосов
/ 17 июля 2010

Стандартная реализация Ruby использует хэш Murmur для некоторых типов (целое число, строка)

из 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 в своем собственном проекте, он очень быстрый и обладает хорошими криптографическими свойствами (но недостаточно хорош для использования в качестве криптографической хэш-функции).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...