2014-04-20 122 views
2

我是Windows商店應用程序開發的新手。我正在創建一個Windows Store應用程序,它需要在客戶端存儲一些數據。此數據以JSON格式存在,其中Build Action爲內容。無論何時用戶運行應用程序,我都通過閱讀這個JSON文件來初始化一些對象。然而,這只是一個純文本,幷包含不應向用戶顯示的數據。我可以通過任何方式加密這個JSON。我基本上需要一種解決方法,在構建應用程序時加密json數據,並在讀取和初始化對象時解密此json。請建議。保護客戶端json

回答

2

我假設你的代碼看起來是這樣的:

string json = File.ReadAllText("/<path to json>/config.json"); 
// Parse the json ... 

您可以加密使用AES加密的JSON文件的內容。 您需要定義一個將用於加密和解密的密鑰。

看看在這裏:使用加密using AES encrypt/decrypt in c#


後您的代碼將是這樣的:

當你需要閱讀您的配置:

string encryptedJson = File.ReadAllText("/<path to json>/config.json"); 
string aesKey = "<your aes key>"; 
string plainJson = AesDecrypt(encryptedJson, aesKey); 
// Parse the json ... 

當您需要保存配置:

// Generate json ... 
string plainJson; 

string aesKey = "<your aes key>"; 
string encryptedJson = AesEncrypt(plainJson, aesKey); 
File.WriteAllText("/<path to json>/config.json", encryptedJson); 

請注意,您的鑰匙可以從你的編譯的程序集使用反射方法

+0

由於提取。你的方式很好,但我得到了不同的解決方案。我使Build Action成爲嵌入式資源。看到這[鏈接](http://androidyou.blogspot.in/2012/08/how-to-load-resource-stream-in-winrt.html)。 – user3326423

+0

這仍然不是祕密。 JSON數據的價值是什麼? –

+0

@ PeterTorr-MSFT - 存儲在磁盤上的文件被加密爲OP描述的 –