2012-05-23 73 views
3

我想在我的VB6的代码混淆密码,这样,它甚至无法通过反编译显露出来。如何隐藏代码中的硬编码密码?

这可能吗?

+1

暗纹?是。隐藏?编号 –

+2

通常的做法是根本不存储密码(尤其是没有硬编码到编译的可执行文件中)。使用Windows集成安全性并使受保护的资源可以被某个用户帐户或组访问。在该帐户下运行该可执行文件。 – Tomalak

+1

好问题。你想如何存储密码? DIM变量并将其存储在那里?或者可能是一个常数与密码在里面?这些内存是否可以被黑客攻击或反编译? 我至少会尝试对密码进行散列,以免它完全暴露。除非你需要其他应用程序或其他东西的原始密码。然后一个哈希将不起作用。 – Martin

回答

2

如果程序不仅可以访问它以明文,那么它可能以某种方式进行检索。你最好以其他方式获得安全。如何做到这一点真的取决于你的具体应用。你是否需要在应用程序中存储密码?你可以简单地存储一个预先计算的散列并与之进行比较吗?

+0

如何检索?并且可以检索任何代码?还是只有当它存储在内存中? – Martin

+0

@Martin如果用户可以读取可执行文件,则可以读取任何硬编码的值。 – user1937198

+0

什么是增加一个硬编码的哈希当有人可以去二进制和简单地通过改变哈希破解你的应用程序呢?如果您确实需要进行身份验证,那么您需要创建某种“客户端服务器”体系结构。 –

0

这真的取决于你将使用什么密码。如果你只是需要检查它,你可以简单地使用一个非常强大的密码并对其进行散列(即使他们使用某种类型的彩虹表,它也很难找到它)。

但觉得这样,如果有人愿意编译你的代码,他们可以只需更改该密码一个又一个简单的,他们知道散列完美破解你的应用程序。

另一方面,如果您尝试存储密码以便您可以反转它(DB密码?)并使用它,那么我会说您要采用错误的架构,并且您无法安全地执行任何操作让恶意用户找到你的密码。您应该创建一个“普通用户”和客户端应用程序无法访问的服务器端应用程序,该应用程序将向您的服务器端应用程序发送请求。