0

我有一个将特定的 excel 文件转换为 XML 并将其传输到另一个应用程序的应用程序。传输中的一项要求是在 XML 中具有唯一编号标记 (REFNUM)。这样做的原因是为了避免同一文件的多次传输。

我对此的直观方法是创建文件的数字签名(MD5/SHA)并将签名嵌入到 REFNUM 标记中(将十六进制转换为十进制之后)。

问题是,有时用户可以简单地进行微小的更改,例如调整其中一列的大小,从而创建完全不同的签名。所以从系统的角度来看,这是一个从未传输过的新文件。

问题:我怎样才能避免它,或者数字签名可能不是正确的解决方案?谢谢!

4

1 回答 1

1

不要为此使用加密哈希/数字签名。它们的设计使得文件中任何位置的单个位更改都会生成完全不同的哈希/签名。其他选项将是一个简单的串行计数器,为每个“重大”更改递增(但如何确定尚不清楚),或者可能是时间戳(可能与有关作者或系统的其他信息相结合),或者类似于UUID,或者甚至可能只是一个随机数(不过,请选择一个足够大的范围以使您的冲突机会足够低)。

于 2012-10-05T14:45:38.380 回答