2012-02-02 40 views
1

信息化检查文件的创建者,以防止篡改/损坏的数据

我正在加载从磁盘的二进制文件的项目。这个文件有特定的结构来存储数据,如果数据是由第三方产生/篡改的,我需要保护这个文件不被加载。

恢复

我有,我必须检查“创造者”是我在装货前的文件。

项目规范

  1. 加载该文件被用C++编写的应用。
  2. 生成该文件的应用程序是用C#编写的。

问题

  • 我有哪些选择来做到这一点?
  • 要使用哪些库/算法?
  • 您能否为我提供一些步骤或指导?

注意

  • 我有加密+链接到C++项目是否有帮助。

回答

1

你正在寻找的是一个签名/认证系统wirth不对称密钥。该功能内置于.Net。快速谷歌搜索显示this example看起来合法。

请记住,如果您没有完全控制认证过程(如果您的应用程序在客户端计算机上),则有人可能会反编译代码以绕过检查。

+0

但为此,我必须购买某种类型的证书?或者我可以自己生成并正常使用它?请记住,这只是内部检查。 – WoLfulus 2012-02-02 16:45:21

+0

是的,您可以生成自己的证书。例如使用IIS:http://geekswithblogs.net/iupdateable/archive/2009/09/22/using-iis-to-generate-a-x509-certificate-for-use-with.aspx – Luk 2012-02-02 17:45:53

+0

谢谢!我正在阅读一些有关这方面的文章,似乎它会起作用。 – WoLfulus 2012-02-02 19:00:53

0

很快喜欢,我会看看LZMA SDK由于SDK支持C++和C#,只是压缩/加密的文件

也许有更好的解决方案,但是这将是我第一次尝试

+0

压缩/加密不是问题。我真正需要的是在加载之前检查文件是否被某人修改和/或生成。文件内容可以是100%有效的,但如果其被某人修改/生成,则它不能被加载。 – WoLfulus 2012-02-02 16:35:51