string - 比较长字符串的哈希值

标签 string hash compare

为了提高比较字符串的函数的性能,我决定通过比较哈希值来比较它们。
那么,如果2个非常长的字符串的哈希值彼此相等,那么这些字符串也彼此相等,是否可以保证?

最佳答案

虽然可以保证2个相同的字符串将为您提供相等的哈希值,但反之则不正确:对于给定的哈希值,总是会有多个可能的字符串产生相同的哈希值。
由于PigeonHole principle,这是正确的。

就是说,可以使2个不同字符串产生相同哈希的机会变得无穷小,以至于被认为等同于null。

这种哈希的一个相当经典的例子是MD5,它具有接近完美的128位分布。这意味着您有机会在2 ^ 128中有2个不同的字符串产生相同的哈希值。好吧,基本上,几乎和不可能一样。

关于string - 比较长字符串的哈希值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10534937/

相关文章:

string - 使用lua解析代码语法?

perl - 在 Perl 中测试两个散列键是否具有相同的结构

security - CRC和散列方法(MD5,SHA1)之间的区别

javascript - HTML - 使用 javascript 从文本字段保存数据

javascript - Jquery 字符串中某些字符的问题

c++ - 散列 3d 坐标时的频繁散列冲突

performance - AES 比 RSA 加密更快?

Java:将字符串与 "-"(破折号)进行比较

java - 比较数组列表中的元素

string - 如何在字符之间获取字符串(多词)