【发布时间】:2012-05-09 11:26:16
【问题描述】:
我有通过预定用户名和密码连接到 SqlServer 的程序。 例如:
static void Main(string[] args)
{
string UserName, Password;
UserName = "Name";
Password = "Pass";
SqlConnection conn = new SqlConnection("...");
}
如何保护密码不被反编译?
【问题讨论】:
-
你不能。你能做的最好的就是混淆它,但是使用像 C# 这样的语言,你可以将可执行文件/库反汇编成几乎与它编译的确切代码一样,这不会有多大好处。
-
@WillVousden 任何语言都可以从字节码中反汇编。结果不像反汇编 IL 那样干净,但它仍然可读。这就是加密的用途。
-
@Danny:那么您将加密密钥存储在哪里?
-
@WillVousden 您可以在运行时从安装周围的字节构建解密密钥。
-
@DannyVarod:是的,但它必须根据源代码中的某些规则存储或生成,任何拥有 ILDASM 副本的人都可以轻松获得。
标签: c# .net passwords password-protection