2

メッセージの本文とヘッダーに基づいて計算されたハッシュ コードを使用して、すべての過去の電子メールとニュースを個別のメッセージ ファイルとして保存し、インデックスを作成したいと考えています。次に、検索用に、他のものにも索引を付けます。

プライマリ インデックス キーについては、ハッシュ アルゴリズムに SHA-1 を使用し、衝突が発生しないと想定することを考えています (理論的には衝突が発生する可能性があることは知っていますが)。

本文の他に、どのヘッダーにインデックスを付ける必要がありますか? または、より一般的には、ハッシュする前にメッセージのメモリ内コピーにどのような変換を適用する必要がありますか?

「ReSent-*:」ヘッダーを無視する必要がありますか? 行区切りヘッダーを単一行ヘッダーに結合し、不要な空白を削除する必要がありますか?

(Message-ID ヘッダーではなくヘッドに基づいてメッセージのインデックスを作成する理由は、Message-ID ヘッダーが均一にフォーマットされていないためです。)

4

1 に答える 1

1

メッセージの一意性を構成するものを正確にハッシュする必要があります。2つのメッセージが「ReSent-*:」ヘッダーの存在によって異なる可能性があるが、それでも「同じ」メッセージと見なす必要がある場合、それらのヘッダーはハッシュされたものの一部であってはなりません。同様に、等しいメッセージのヘッダー構文が異なる場合は、ヘッダー構文を正規化する必要があります。SHA-1などのハッシュ関数は、入力が完全に同じである場合にのみ同じ出力を返します。

ここで、メッセージIDを使用するだけで十分な場合は、フォーマットの問題を除いて、簡単な方法があります。メッセージIDをハッシュするだけです。ハッシュ化されたメッセージIDには、インデックスを作成できる通常の固定サイズのランダム化された形式が含まれます。

于 2010-03-02T18:29:10.673 に答える