【问题标题】:What hash function does Ruby use?Ruby 使用什么哈希函数?
【发布时间】:2010-07-18 11:53:06
【问题描述】:

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

【问题讨论】:

  • Ruby 甚至没有官方规范,所以我怀疑是否有正确的答案。无论如何,您为什么需要知道这一点?
  • 哈希函数是什么?字符串?数字?对象?
  • 我认为他的意思是这样的ruby-doc.org/core-1.9.3/Bignum.html#method-i-hash

标签: ruby hash


【解决方案1】:

标准 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 哈希,它非常快并且具有良好的加密属性(但不足以用作加密哈希函数)。

【讨论】:

  • Murmur2 具有出色的分布,但对于加密散列来说这是必要的,但这还不够。换句话说,散列不能抵抗故意篡改。
猜你喜欢
  • 1970-01-01
  • 2012-02-26
  • 2015-05-01
  • 2010-09-07
  • 2011-06-04
  • 2015-04-29
  • 2015-11-14
  • 2012-09-25
  • 1970-01-01
相关资源
最近更新 更多