【发布时间】:2010-07-18 11:53:06
【问题描述】:
什么是 Ruby 的哈希函数算法?
【问题讨论】:
-
Ruby 甚至没有官方规范,所以我怀疑是否有正确的答案。无论如何,您为什么需要知道这一点?
-
哈希函数是什么?字符串?数字?对象?
什么是 Ruby 的哈希函数算法?
【问题讨论】:
标准 Ruby 实现对某些类型(整数、字符串)使用 Murmur hash
来自 string.c:1901:
/* MurmurHash described in http://murmurhash.googlepages.com/ */
static unsigned int
hash(const unsigned char * data, int len, unsigned int h)
(注意这个函数好像在SVN主干里改名为st_hash)
如果您想知道在哪里使用它,请在源代码中搜索rb_memhash。我之前在自己的项目中使用过 Murmur2 哈希,它非常快并且具有良好的加密属性(但不足以用作加密哈希函数)。
【讨论】: