是ruby'返回的值;s#在解释器实例之间散列相同的值?

是ruby'返回的值;s#在解释器实例之间散列相同的值?,ruby,hash,Ruby,Hash,ruby的#hash在解释器实例中返回的值是否相同 例如,如果我做了“some string”.hash,即使在解释器的不同实例中运行,我也会得到相同的数字吗?如果是这样,那么对于所有内置类型(例如,Hash,FixNum,等等)也是如此。在不同的实例中不一样,至少在Ruby 1.9.1中是这样 提供一些进一步的信息 似乎他们将散列算法改为基于随机种子的算法…如果您想做一些跨版本和对象都相同的事情,请尝试md5或sha1 require 'digest/md5' Digest::MD5.hex

ruby的#hash在解释器实例中返回的值是否相同


例如,如果我做了
“some string”.hash
,即使在解释器的不同实例中运行,我也会得到相同的数字吗?如果是这样,那么对于所有内置类型(例如,
Hash
FixNum
,等等)也是如此。

在不同的实例中不一样,至少在Ruby 1.9.1中是这样

提供一些进一步的信息


似乎他们将散列算法改为基于随机种子的算法…

如果您想做一些跨版本和对象都相同的事情,请尝试md5或sha1

require 'digest/md5'

Digest::MD5.hexdigest('some string')

SHA1可能比MD5更好,因为它更现代、更健壮、更适合加密。