Ruby使用哪种哈希函数?

13

什么是 Ruby 的哈希函数算法?


4
Ruby甚至没有官方规范,因此我怀疑是否有正确的答案。无论如何,你为什么需要知道这个呢? - polygenelubricants
5
哈希函数是针对什么的?字符串?数字?对象? - kennytm
我认为他的意思是这样的:http://www.ruby-doc.org/core-1.9.3/Bignum.html#method-i-hash - James
1个回答

17
标准的 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)

请注意,该函数在SVN主干中似乎已更名为st_hash

如果您想知道它在哪里被使用,请在源代码中搜索rb_memhash。我之前在自己的项目中使用了Murmur2哈希,它非常快速并具有良好的加密属性(但不足以用作加密哈希函数)。


3
Murmur2具有优秀的分布性,这对于密码哈希是必要的,但这还不够。换句话说,哈希不具备抵抗有意篡改的能力。 - Steven Sudit

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接