4

異なる場所に保存された 2 つの Excel ファイルがあります。1 つはブラウザーから直接ダウンロードされ、もう 1 つは Selenium ドライバーを使用してダウンロードされます。両方のファイルを手動で確認しましたが、どちらもまったく同じです。ただし、両方のファイルに対して生成される MD5 ハッシュ値は異なります。この問題を解決する方法。

4

3 に答える 3

4

MD5 はハッシュ関数です。ハッシュ関数を使用して、ファイル、ストリーム、またはその他のリソースの整合性を検証します。ハッシュ関数に関して言えば、ファイルの整合性を検証しているときは、ファイルが同じであることをビット レベルで検証していることになります。

これの影響は、ファイルをビットごとのレベルで整合性制約と比較している場合、ハッシュ関数が完全に機能することです。

ただし、Excel スプレッドシートの性質上、. ビットごとのレベルでドキュメントに 1 ビットでも追加、削除、または移動すると、そのファイルのハッシュは完全に異なります。(常にではありませんが、心配する必要はありません。)

Excel のドライバーは、セレンが使用するドライバーとはかなり異なるため、特に、セレンによってファイルに加えられる可能性のある圧縮やその他の変更/最適化を考えると、もちろん、ハッシュは異なります。

私の推奨事項: まず、ファイルをプルアップして、diffこれら 2 つのファイルの違いを見つけます。2 つのファイルのハッシュが異なる場合、それらのファイルも異なることはほぼ (完全ではありませんが) 自明です。

第 2 に、これらのスプレッドシートの情報を比較して、ファイルをビットごとに検証するのではなく、ドキュメントの整合性を検証する (そしてその情報のハッシュを取得できる)ドライバーを作成します。

両方を CSV としてエクスポートし、1 行ずつ行って 2 つを比較することをお勧めします。

于 2012-09-20T15:53:28.937 に答える
3

MD5 アルゴリズムは、ファイルに格納されているメタデータ (ファイル名、日付など) を含めてファイル全体を計算するため、2 つのファイルの「メイン コンテンツ」は同一でも、一部のバイトが異なる場合があります。

ファイルのどの部分が MD5 チェックにとって本当に重要かを判断するのは難しい場合があります。

Windows を使用していて、Excel ファイルのみに関心がある場合は、この種のツールを試してください: http://www.formulasoft.com/download.html

于 2012-09-20T15:47:07.257 に答える