1

如何使用 MD5 算法检测两个字符串之间的细微差别?我想找到几个大字符串之间的相似度百分比。至于我如何检查差异,因为:

MD5("The quick brown fox jumps over the lazy dog.")
= e4d909c290d0fb1ca068ffaddf22cbd0

MD5("The quick brown fox jumps over the lazy dog")
= 9e107d9d372bb6826bd81d3542a419d6

你能给我一个解决方案,或者给我另一种可以在大字符串或大文档中有效使用的哈希算法吗?

4

2 回答 2

3

所有哈希可以告诉您的是字符串匹配或不匹配。这个问题之前有人问过: 两个字符串有多少相似度?(90%,100%,40%)提倡使用Levenshtein距离。本文概述了如何使用 Levenshtein 距离并从中得出百分比差异: http ://www.switchplane.com/blog/improving-search-with-levenshtein-distance.php

于 2012-11-03T02:44:51.593 回答
0

如果字符串真的很长(比如整个文件,可能很大,文件),你可以把它们分成几块,散列,然后检查有多少匹配。不过,这并不完全可靠。

如果它说两个字符串中的大多数是相同的,那可能是准确的。除非您做更多的工作来保持同步,否则当两者几乎相同时,它可能表明存在很大差异。举个例子,如果你天真地这样做,在一个字符串的开头插入一个字节可能表明字符串完全不同,即使实际上只有一个字节不同。

于 2012-11-03T02:51:03.640 回答