2012-02-02 39 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