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