Tag: 消化

在Ruby中创build一个数字,string,数组或散列的md5散列

我需要为Ruby中的variables创build一个签名string,其中variables可以是数字,string,散列或数组。 哈希值和数组元素也可以是这些types中的任何一种。 该string将用于比较数据库中的值(在本例中为Mongo)。 我的第一个想法是创build一个JSON编码值的MD5散列,如下所示:(body是上面提到的variables) def createsig(body) Digest::MD5.hexdigest(JSON.generate(body)) end 这几乎可以工作,但JSON.generate不会每次都按相同的顺序对一个散列的键进行编码,所以createsig({:a=>'a',:b=>'b'})并不总是等于createsig({:b=>'b',:a=>'a'}) 。 创build签名string以适应此需求的最佳方法是什么? 注意:对于我们之间的细节,我知道你不能JSON.generate()一个数字或string。 在这些情况下,我会直接调用MD5.hexdigest() 。