2012-06-01 86 views
1

我想加密一個字符串並將其保存到磁盤上,並以一種加密格式。要做到這一點,我必須在源代碼的某處放置共享密碼。用戶在程序運行的時候提取這個文件有多容易? 如果他們這樣做不是世界末日,但如果他們看不到這個字符串,我更喜歡它。 我正在使用c#.net從源代碼中提取共享密碼有多簡單

回答

1

它的孩子的Play.Have你聽說過Reflector.Its一個軟件讀取ILCode並生成源代碼。從源代碼獲取祕密就像在公園散步。 您可以使用下列安全措施

與字符串加密

模糊處理您的代碼添加自定義安裝程序操作存儲在app.config文件中的祕密加密系統使用特定的密鑰(DPAPI)

無論是它的任何方法,是不是100%的裂紋proof.If你給可執行公開它可以逆轉

1

對於知道自己在做什麼的人(即:任何會首先對'黑客入侵'您的應用感興趣的人)來說,這是微不足道的。它會阻止最偶然的非技術用戶訪問磁盤文件中的字符串,但就是這樣。

+0

由於安德魯 - 你有什麼更好的解決方案,以確保此字符串。我想,無論我做什麼,它總是可以從記憶中拉出來,只是不想讓它變得太簡單。 – Oli

+0

不知道你是在ASP.NET上;羅米爾的回答應該會對你有所幫助。 –

+0

我在.net上,但Romil提供的鏈接似乎表明我可以加密App.config以及web.config的各個部分。猜猜我很快就會發現;-) – Oli

1

存儲在配置文件中的密鑰和加密的部分配置文件使用aspnet_regiis實用程序。

See full code to encrypt the config file

+0

謝謝羅米爾 - 這似乎正是我需要的。 – Oli

+0

您可以在MSDN網站上找到相同的實現。 –

+1

@Romil aspnet_regiis僅適用於基於web的應用程序。加密算法是系統特定的,您無法使用預先加密的app.config文件分發可執行文件 – techno