2010-08-06 35 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