MD5哈希函数

时间:2012-11-03 02:40:58

标签: algorithm hash

如何使用MD5算法检测两个字符串之间的微小差异?我想找到几个大字符串之间的相似性百分比。我怎么能检查以下区别:

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

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

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

2 个答案:

答案 0 :(得分:3)

所有散列都可以告诉你字符串是否匹配。之前曾提出这个问题:How much two strings are similar?(90%,100%,40%)主张使用Levenshtein距离。本文概述了如何使用Levenshtein距离并从中得出百分比差异:http://www.switchplane.com/blog/improving-search-with-levenshtein-distance.php

答案 1 :(得分:0)

如果字符串非常长(如整个,可能很大的文件),你可以将它们分成几部分,散列部分,并检查多少匹配。但这并不完全可靠。

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