2009-12-30 111 views
4

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

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

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

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

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

我认为在真正需要它之前从多个部分组合密码,但是在某些时候密码是完整的,所以调试器和一个井位断点就是所需要的。

当你需要将你的密码存储在你的应用程序中时,你们会使用什么方法?

干杯

回答

7

我的个人意见与上面的GregS相同:这是浪费时间。无论您尝试阻止多少应用程序,应用程序都会被盗版。然而...

你最好打赌是减少休闲盗版。

考虑你有两类用户。普通用户和海盗。海盗会竭尽全力破解你的申请。普通用户只是想用你的应用程序来完成某件事情。你无法对海盗做任何事情。

一个普通用户不会知道任何关于破解代码的问题(“呃......什么是十六进制编辑器?”)。如果这类人购买应用程序比盗用它更容易,那么他们更有可能购买它。

它看起来像你已经考虑的解决方案将对普通用户有效。这就是你可以做的一切。

4

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

4

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

+0

我知道这是一个缺陷。有没有办法不做我想要的而不是这样?我不想为每个安装生成密码,然后将其存储,因为问题会相同。我将不得不使用固定密码加密该文件... – 2009-12-31 09:59:48

4

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

0

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

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

我只是建议你做一个非常复杂的系统,并尝试自己破解它,看看反汇编是否会导致一条简单的路径。向随机子程序中添加一些随机调用,使其非常具有说服力,尝试伪造注册表键和全局变量的使用,将黑客的生活变成地狱,这样他最终会放弃。

相关问题