我刚刚在我正在开发的 C# 项目上测试数据库连接。我想知道是否有任何保护措施可以防止我的凭据暴露给可能的反编译。
public int connect_DB()
{
try
{
string server = "localhost";
string db = "myDB";
string username = "myUsername";
string password = "passwordDB";
string constring = $"SERVER={server};DATABASE={db};UID={username};PASSWORD={password};";
conn = new MySqlConnection(constring);
conn.Open();
return 1;
}
catch (Exception)
{
MessageBox.Show("Please contact to an administrator", "DataBase connection failed",
MessageBoxButtons.OK, MessageBoxIcon.Error);
return 0;
}
}
该项目将构建为.exe并提供给公司。如果有人反编译代码,数据库凭据将显示为纯文本,这可能会导致一些明显的问题。
谢谢!
在.NET环境中反编译构建(.exe)并不困难。 为此,有 dnSpy、JustDecompile 等反编译器。 为了保护您的代码免遭反编译,您需要使用混淆器。混淆器使您的源代码在反编译期间难以阅读,但同时保留了其功能。还有大量的混淆器,有付费的也有免费的。 我建议使用 .NET Reactor。 但还值得记住的是,对于几乎所有混淆器,也有反混淆器可以解密混淆器处理的程序集。例如,为了对程序集 .NET Reactor 进行反混淆,有一个 NETReactorSlayer 项目。
因此,我建议您: