【问题标题】:c# Create Unique Identifiers for filesc#为文件创建唯一标识符
【发布时间】:2018-10-18 19:06:12
【问题描述】:

我的 C# WinForms 应用程序使用 Microsoft® Office Word 模板和其他文件格式来编写和打印报告数据。这些模板通过电子邮件和共享服务发送给用户。

是否有某种签名、隐藏属性或唯一标识符将其添加到这些模板文件中,并且应用程序读取此签名以确保文件是发送给用户的文件;因为如果使用没有书签的模板会导致错误?

我在这个post 中阅读了有关GetFileInformationByHandle 函数的信息,但我不确定结果。

【问题讨论】:

标签: c# uniqueidentifier


【解决方案1】:

您可以使用Hash 函数生成Checksum 来验证文件。散列您的模板文件,并将校验和附加到文件中。最后阅读此内容并验证它与您最后的相同(记住在重新散列文件之前删除校验和),以证明文件相同。

【讨论】:

  • 您可以使用 GUID Guid newname = Guid.New();
  • @John 我试过这个校验和,确实改变文档模板中的任何东西都会改变校验和,但我想我必须将校验和保存在其他文件中,而不是模板文件可能在 XML 文件中。但是,总的来说,我明白了。谢谢。
  • @Tima 您可以将其存储在单独的文件中,或者只是将其附加到文件中并将其删除,因为哈希是恒定长度的。例如,使用 SHA256,哈希值总是 32 字节长。因此,如果您将其附加到文件中,您可以使用文件流读取它:filestream.seek(filestream.length - 32, SeekOrigin.Current) 然后只需读取 32 个字节。
猜你喜欢
  • 2020-07-15
  • 1970-01-01
  • 1970-01-01
  • 2021-10-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-25
  • 1970-01-01
  • 2011-08-25
相关资源
最近更新 更多