本地敏感哈希实现? - c#

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center提供指导。

已关闭8年。

在C / C++ / Java / C#中是否有相对简单易懂(易于实现)的局部敏感哈希示例?

我想了解更多有关此概念的信息,因此想在几个文本文件上尝试实现只是为了了解其工作原理,因此我不需要任何高性能或任何东西……仅是哈希示例对于相似的输入返回相似的哈希值的函数。我可以通过后面的例子从中学到更多。 🙂

参考方案

对于字符串,您可以使用近似匹配算法。

  • 生成随机字符串
  • 对于所有字符串,使用http://www.dotnetperls.com/levenshtein
  • 这样的算法计算它们与该随机共享字符串的距离

    如果字符串与参考字符串等距,则它们很可能彼此相似。然后您就可以对字符串进行局部敏感哈希实现。

    您可以为一定距离范围创建不同的哈希桶。

    编辑:您可以尝试字符串距离的其他变体。一个更简单的算法只会返回“否”。两个字符串之间的共同字符。

    身份验证方法 - java

    我正在编写一个服务器-客户端应用程序以接收用户消息并发布它。关于身份验证方法的思考。非对称加密,可能是RSA。哈希(salt + password +'msg'+'userid'),SHA256HMAC,SHA256。似乎比方法2更安全。还涉及对密码和msg数据进行哈希处理。对“ msg”进行对称加密,并在两侧均存储有静态密码,可能是AES。无需加密,因为无…

    散列在Java散列表中 - java

    我一直在研究哈希表源代码。并发现哈希如何发生:int index = (hash & 0x7FFFFFFF) % tab.length; 我不明白为什么要按位AND在这里使用?如果将0x7FFFFFFF转换为二进制,则得到= 111 1111 1111 1111 1111 1111 11111111‬据我所知,如果第一个数字和第二个数字= 1,AND…

    哈希表哈希避免使用负哈希码 - java

    我想知道Hashtable为什么要避免使用负哈希码?int hash = key.hashCode(); int index = (hash & 0x7FFFFFFF) % tab.length; (hash & 0x7FFFFFFF)将带符号的位从0变为正数,但是为什么不能将带符号的32位整数视为无符号呢?甚至使用模块化技巧使之变得积极。例…

    Java:正则表达式模式匹配器是否有大小限制? - java

    我的模式类似于OR:“word1 | word2 | word3”我大约有800个字。可能有问题吗? 参考方案 您仅受记忆和理智的限制。 :)

    Java:线程池如何将线程映射到可运行对象 - java

    试图绕过Java并发问题,并且很难理解线程池,线程以及它们正在执行的可运行“任务”之间的关系。如果我创建一个有10个线程的线程池,那么我是否必须将相同的任务传递给池中的每个线程,或者池化的线程实际上只是与任务无关的“工人无人机”可用于执行任何任务?无论哪种方式,Executor / ExecutorService如何将正确的任务分配给正确的线程? 参考方案 …