微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在ruby上生成哈希

如何解决在ruby上生成哈希

| 在生产服务器上:
\"KYK_iphone3.jpg\".hash.abs%1000
=> 908
但是在登台服务器上:
\"KYK_iphone3.jpg\".hash.abs%1000
=> 740
两个哈希值不匹配。您能给我您在这种情况下该怎么做的想法吗?     

解决方法

不能保证Ruby的默认哈希在各个实现之间是一致的。如果需要一致的哈希,则应使用标准的哈希算法,例如MD5,SHA1或类似的哈希算法。 编辑: 经过进一步的调查,结果发现不同过程之间甚至不一致:
$ irb
> \"abc\".hash
 => 3669021835949727595
> exit 
$ irb
> \"abc\".hash
 => 2091809102525897616
看来这可能是从Perl继承来的预期安全功能,可以防止算法复杂性攻击。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。