1

MD5アルゴリズムを使用して2つの文字列間の小さな違いを検出するにはどうすればよいですか?いくつかの大きな文字列間の類似性のパーセンテージを見つけたいと思います。どうすれば違いを確認できますか:

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

ハッシュからわかるのは、文字列が一致するか一致しないかということだけです。この質問は以前に尋ねられました: レーベンシュタイン距離の使用を提唱する2つのストリングはどれくらい似ていますか?(90%、100%、40%) 。この記事では、レーベンシュタイン距離を使用し、そこからパーセンテージの差を導き出す方法の概要を説明します: http ://www.switchplane.com/blog/improving-search-with-levenshtein-distance.php

于 2012-11-03T02:44:51.593 に答える
0

文字列が非常に長い場合(ファイル全体、場合によっては大きなファイルなど)、文字列を細かく分割し、ハッシュして、一致する文字列の数を確認できます。しかし、それは完全に信頼できるわけではありません。

2つの文字列のほとんどが同一であると表示されている場合、それはおそらく正確です。同期を維持するためにかなり多くのことを行わない限り、2つがほぼ同一である場合でも、大きな違いを示している可能性があります。たとえば、単純にそれを行う場合、1つの文字列の先頭に1バイトを挿入すると、実際には1バイトだけが異なる場合でも、文字列が完全に異なることを示している可能性があります。

于 2012-11-03T02:51:03.640 に答える