作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有一个相当抽象的问题:即使输入发生轻微变化,通常的哈希算法(加密和非加密)也会发生巨大变化。
Digest::SHA1.hexdigest 'hello'
=> "aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d"
Digest::SHA1.hexdigest 'hello!'
=> "8f7d88e901a5ad3a05d8cc0de93313fd76028f8c"
是否有哈希算法在输入稍有变化时不改变输出?
理想情况下,这样的算法应该有一个tolerance
设置,它应该告诉散列在更改输出之前应该容忍多少输入更改。
例如,如果输入容差为 70%,这些“你好”和“你好!”字符串应该产生相同的散列输出,但如果它是 95%,那么这两个字符串应该产生不同的(略微)输出。
也许它根本不叫散列,但这个领域对我来说是一个未知的未知数。
最佳答案
您可能会研究文档比较算法。这更接近您需要的算法类别。
看
您可以从那里计算更改的百分比。这将要求您保留要比较的原始文本——而不是一个小的散列值。但我看不出有任何可能的方式来存储小值(例如哈希)对您有用。
关于string - 具有输入更改容差阈值的哈希,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28896592/
我是一名优秀的程序员,十分优秀!