2010-08-06 93 views
0

我有一個用C#.NET開發的桌面應用程序,具有加密的數據庫。 加密密碼在應用程序代碼中被硬編碼。隱藏桌面應用程序代碼的密碼

如何隱藏此密碼,因爲代碼可以通過 a .net反彙編程序進行訪問?

也許混淆代碼可能是一個解決方案,但是如何使用混淆代碼爲應用程序創建安裝程序,因爲每次重建安裝程序時,都會創建一個全新的.exe文件,並且代碼永遠不會被混淆。

我希望有人知道如何解決這個問題。

+2

[Winforms應用程序中如何存儲密碼?](http://stackoverflow.com/questions/40853/how-to-store-passwords-in-winforms-application) – David 2010-08-06 16:50:43

+1

作爲一種安全形式的混淆類似於洗牌,以「隱藏」俱樂部的王牌。任何想看的人都可以找到該卡。 – 2010-08-06 16:56:52

+0

即使.net反彙編程序不存在,或者如果存在完美的混淆器,像WinDbg這樣的調試器也能看到它。這個問題有很多解決方案,但這取決於你的客戶是誰。例如。內部企業應用程序比擁有Windows系統的人有更多的選擇。此數據庫是本地機器還是所有用戶都使用它? – 2010-08-06 18:26:35

回答

2

我的建議是沒有做到這一點,這裏的原因:SCADA

-1

你一定要尋找到一些用於加密,一些專業的混淆器加密會在組件中字符串的信息也是如此。

+1

這是密碼學的「一路下來」嗎?當然,你可以添加另一層加密。但是,如果桌面應用程序要訪問數據庫,則必須具有所有必需的密鑰。這意味着這些鍵*將被反彙編器和/或調試器訪問。 – 2010-08-08 06:59:08