Ruby使用什么哈希函数?

Sha*_*ese 13 ruby hash

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

And*_*Dog 18

标准的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)
Run Code Online (Sandbox Code Playgroud)

(请注意,此功能似乎st_hash在SVN中继中重命名)

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

  • Murmur2具有出色的分布,但虽然这对于加密散列是必要的,但这还不够.换句话说,散列不能抵抗*故意*篡改. (3认同)