【发布时间】:2021-01-03 06:30:30
【问题描述】:
我在 C#(Windows 窗体应用程序)中做了一个项目,代码中有一些常量变量保存重要信息,例如数据库密码等。基本上我的问题是,当我“发布”我的项目并提供安装文件夹供某人在他的计算机上安装应用程序时,他是否可以阅读我的源代码?
【问题讨论】:
-
是的。简而言之:保护数据的唯一方法是对其进行加密。但使用的唯一方法是解密它。如果计算机可以读取某些内容,那么用户也可以。和提示:不要硬编码凭据。使用配置文件。
-
不是源代码本身,而是使用像 dotPeek (jetbrains.com/decompiler) 这样的反编译器可以获得非常接近的源代码版本。密码等将是可见的。
-
较新的 Visual Studio 使用 Ilspy,结果相似(Visual Studio 2019 附带对 F12 的反编译支持。要启用,请转到工具/选项/文本编辑器/C#/高级并选中“启用导航到反编译源")
-
是的。对于任何用 .NET(c#、VB.NET)编写的应用程序,任何有权访问 DLL 的人都可以使用 dotPeek 或 JustDecompile 对它们进行反编译。局部变量的名称会有所不同,但字段、方法、类的名称会像源代码一样被反编译。
-
根据this link ClickOnce 设置是存储连接字符串的推荐方式。但我无法确定用户是否无法访问这些...
标签: c#