0

特定のExcelファイルをXMLに変換し、それを別のアプリケーションに送信するアプリケーションがあります。送信の要件の1つは、XMLに一意の番号タグ(REFNUM)を含めることです。これは、同じファイルが複数回送信されないようにするためです。

これに対する私の直感的なアプローチは、ファイルのデジタル署名(MD5 / SHA)を作成し、その署名をREFNUMタグに埋め込むことです(16進数を10進数に変換した後)。

問題は、ユーザーが列の1つをサイズ変更するなどの小さな変更を加えるだけで、まったく異なる署名が作成される場合があることです。したがって、systenの観点からは、これは送信されたことのない新しいファイルです。

質問:どうすればそれを回避できますか、またはデジタル署名が適切な解決策ではない可能性がありますか?ありがとう!

4

1 に答える 1

1

これには暗号化ハッシュ/デジタル署名を使用しないでください。それらは、ファイル内のどこかで 1 ビット変更すると、まったく異なるハッシュ/署名が生成されるように設計されています。他のオプションは、「重要な」変更ごとにインクリメントされる単純なシリアルカウンター (ただし、それを決定する方法は不明)、またはタイムスタンプ (作成者またはシステムに関する追加情報と組み合わされる可能性があります)、またはUUID、または単に乱数でさえあります (ただし、衝突の可能性が十分に低くなるように十分な範囲を選択してください)。

于 2012-10-05T14:45:38.380 に答える