2013-10-04 41 views
0

我正在嘗試爲正在開發的軟件創建新的文件擴展名,我所要做的就是創建一個文本文件(用於存儲數據),該文件將被加密爲字節或類似的東西,所以如果用戶試圖編輯它,它將不可編輯。使用加密數據創建自定義文件格式

  1. 我需要任何庫來執行這樣的操作嗎?
  2. 我可以保證沒有人能讀到嗎?
  3. 在系統上是否有其他存儲數據的方式? (只能由軟件讀取)
+0

文件擴展名只是一個提示,一些約定。另外,系統上的管理員將能夠讀取*任何*文件 - 所以你實際上正在尋找**文件格式**,即**混淆**,可能*加密*。 – miku

+0

是的,那就是我在找什麼,我該怎麼做? –

回答

1

類似this在這裏可能會有所幫助。這是將字符串加密爲加密格式的示例。如果您能夠以字符串格式獲取文件中想要的內容,請按照鏈接中顯示的方式對其進行加密,然後將其輸出到您的文件中。這種方式,當文件被打開時,他們只會有加密信息(或對未經訓練的眼睛,負載gobeldy goop)。

據我所知,所有的文件擴展名都可以用某種格式打開,即使你不得不求助於像記事本這樣的低級應用程序,所以你最好的辦法就是打亂文件中的信息。

希望這會有所幫助!

+0

你的鏈接建議使用DES作爲密碼,這是不安全的這幾天。其次,它建議使用不應該使用的ECB模式 - 閱讀[this](https://en.wikipedia.org/wiki/Block_cipher_mode_of_operation)鏈接。第三,沒有認證,所以文件可以在用戶不知道的情況下被篡改。我建議使用已知的安全AE模式。 –

0

您需要一些庫來加密和解密數據(如提到的一個user2777005)。

然後你需要考慮加密的關鍵。例如,密鑰可以是密碼,即您的應用程序的用戶輸入。

如果密鑰不是來自用戶(例如,您的應用程序只是默默地加密和解密文件),則需要以無人可以訪問的方式存儲該密鑰。存儲這種密鑰的一個可能的地方是Windows註冊表。在這種情況下,您將在目標計算機上安裝應用程序時創建一個密鑰。

但是,如果保護級別不允許用戶打開編輯器並讀取文件對您來說就足夠了,那麼您可以簡單地將密鑰硬編碼到軟件中。這當然意味着,一箇中等技能的黑客可以閱讀該文件。

相關問題