string - 任何对字符串进行破坏/散列但可以匹配的算法?

标签 string algorithm hash

用例:客户端需要通过 HTTP 发送一个巨大的字符串。服务器回复字符串是否包含一些子字符串。然而,巨大的字符串是巨大的。因此,该系统效率非常低。此外,巨大的字符串中包含一些敏感信息,因此非常不安全。

是否有一些伪哈希机制以某种方式将一个大字符串汇总为某个数字,这个大字符串的所有子字符串都将哈希为相同的数字,但非子字符串很可能不会哈希到这个大字符串?

最佳答案

Is there some pseudo-hashing mechanism that somehow summarizes a big string into some number, which all substrings of this big string would hash to the same number, but non-substrings will with high probability not hash to this big string?

没有。

f 成为这样的哈希。考虑一个字符串 s 和非子字符串 t。请注意,sts + t 的子字符串。因此,st 具有相同的哈希(即,f(s) = f(t) = f(s + t)) .这与 f(s) != f(t) 的概率很大。

特别是,对于 s = "",我们看到所有字符串 t 都有 f(s) = f(t),因此 f 是常量并等于 f("")

关于string - 任何对字符串进行破坏/散列但可以匹配的算法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16887424/

相关文章:

ruby-on-rails - ruby 检查文件是否实际被修改的最佳方法是什么?

arrays - Perl:哈希中的数字排序数组

c - 字符串分词问题

Java 和 .NET : Why different sorting algorithms are used by default?

c - ONP 中的段错误

java - 使用 Java 的 CLI 模式匹配

c# - 在 C# 中比较两个图像的算法

Python - 解析带有自定义价格单位的字符串

c# - 从字符串中删除\r

Java与两个字符串的==比较是假的?