kha*_*anh 4 ruby ruby-on-rails
在生产服务器上:
"KYK_iphone3.jpg".hash.abs%1000
=> 908
Run Code Online (Sandbox Code Playgroud)
但是在登台服务器上:
"KYK_iphone3.jpg".hash.abs%1000
=> 740
Run Code Online (Sandbox Code Playgroud)
这两个哈希不匹配.你能否告诉我你在这种情况下该怎么做的想法?
Ruby的默认散列不保证在各实现之间保持一致.如果需要一致的哈希值,则应使用标准化的哈希算法,如MD5,SHA1或类似方法.
编辑:经过 进一步调查,事实证明它在不同的过程中甚至不一致:
$ irb
> "abc".hash
=> 3669021835949727595
> exit
$ irb
> "abc".hash
=> 2091809102525897616
Run Code Online (Sandbox Code Playgroud)
看起来这可能是从Perl继承的预期安全功能,以防止算法复杂性攻击.
| 归档时间: |
|
| 查看次数: |
489 次 |
| 最近记录: |