很抱歉一直问这么多问题,但你们似乎总是那么友善和乐于助人......
我需要做一些从文件中导入数据的应用程序。例如,用户选择一个文件,应用程序将一些数据导入数据库。
但是我一直在想,这种app会导致文件完整性和真实性的问题。如果用户更改文件,则不允许应用程序使用该信息。如果一个文件不是来自众所周知的来源,则应用程序不能使用该文件。
我该怎么做这种事情?
PS:我正在使用 C#.NET
很抱歉一直问这么多问题,但你们似乎总是那么友善和乐于助人......
我需要做一些从文件中导入数据的应用程序。例如,用户选择一个文件,应用程序将一些数据导入数据库。
但是我一直在想,这种app会导致文件完整性和真实性的问题。如果用户更改文件,则不允许应用程序使用该信息。如果一个文件不是来自众所周知的来源,则应用程序不能使用该文件。
我该怎么做这种事情?
PS:我正在使用 C#.NET
如果您可以控制源文件格式,则可以嵌入数字签名。如果您将签名基于文件内容的散列,那么您可以确定该文件来自受信任的来源,并且没有被篡改。
这取决于您想要这种保护的强度。
例如,您可以有一个 xml 文件(用于人类可读性),它在某处有一个哈希节点,其中包含原始文件的哈希(+salt)。这可以由程序更新,但用户可能很难弄清楚该密钥的含义。当程序打开文件时,它会计算哈希值并检查它是否与写入文件中的相同。
您甚至可以更进一步并使用数字签名,但这要复杂得多。