4

我对如何在我的应用程序中存储使用密码有疑问。我需要即时加密/解密数据,所以密码需要在某个地方。选项是在我的应用程序中硬编码或从文件中加载它。

我想加密应用程序的许可证文件,其中一个安全步骤涉及应用程序能够解密许可证(之后是其他步骤)。用户永远不会知道密码,只有我知道,因为 e 真的不需要它!

我担心的是黑客通过我的代码并检索我存储在那里的密码并使用它来破解许可证,打破了第一个安全屏障。

在这一点上,我不考虑代码混淆(最终我会),所以这是一个问题。

我知道任何存储密码的解决方案都存在安全隐患,但没有办法解决!

在真正需要密码之前,我考虑过从多个部分组装密码,但在某些时候密码是完整的,因此只需要一个调试器和一个良好的断点。

当您需要将硬编码的密码存储在您的应用程序中时,你们(和胆小鬼)使用什么方法?

干杯

4

5 回答 5

7

我个人的看法和上面的 GregS 一样:浪费时间。该应用程序将被盗版,无论您如何阻止它。然而...

最好的办法是减少随意盗版。

假设您有两类用户。普通用户和海盗。盗版者会不遗余力地破解您的应用程序。普通用户只想使用您的应用程序来完成某些事情。你对海盗无能为力。

普通用户对破解代码一无所知(“呃……什么是十六进制编辑器?”)。如果这类人购买应用程序比盗版更容易,那么他们更有可能购买。

看起来您已经考虑过的解决方案将对普通用户有效。这就是你能做的所有事情。

于 2009-12-30T18:32:48.653 回答
4

现在决定您要花多少时间/精力来防止盗版。如果有人下定决心,他们可能无论如何都会让您的应用程序正常工作。

于 2009-12-30T18:15:26.750 回答
4

我知道您不想听到它,但这是浪费时间,如果您的应用程序需要硬编码密码,那么这是一个缺陷。

于 2009-12-30T18:17:40.387 回答
4

我不知道有什么方法可以解决这个问题,以任何有意义的方式阻止黑客。保守秘密是密码学的一大难题。

于 2009-12-30T18:17:50.697 回答
0

我过去做过的一种方法是在安装过程中生成一个唯一的 ID,它会获取 HDD 和 MCU 的 SN 并以复杂的结构使用它,然后用户将这个号码发送给我们的自动化系统,我们回复另一块,应用程序现在将在使用过程中动态解密和比较这些数据。

是的,我工作,但它仍然有硬密码,我们有一些保护层(即,有一些技术可以防止中级黑客了解我们的安全系统)。

我只是建议你做一个非常复杂的系统并尝试自己破解它,看看反汇编是否可以带来一条简单的路径。在随机子程序中添加一些随机调用,使其非常具有寓意性,尝试伪造注册表项和全局变量的使用,使黑客的生活陷入地狱,最终他将放弃。

于 2010-01-01T17:53:22.777 回答