有没有办法在编译的应用程序中很难找到静态密码?在C源代码中加密密码
我需要两种不同的应用程序。一个是Windows的轻量级FTP客户端,只能连接到一个硬编码服务器。另一种是Objective C游戏,它允许用户创建级别包并使用密码来保存它们。他们可以在没有密码的情况下播放,但不能在关卡编辑器中打开。我用AES加密密码,但我必须以某种方式保存解密密码。
我迄今发现的唯一想法是将密码保存为一个字符串,而不是一个字符串,而是多个字符串。这对于游戏来说可能非常有用,因为我可以只连接已经存在的字符串。或者我可以将它保存为一个长字符串并使用秘密算法从该字符串中获取密码 - 尽管这引出了一个问题:Windows上的C应用程序或OS X上的Cocoa应用程序是否可以反编译以找到该算法?
有没有更安全的方法来做到这一点?
我想一个对于基本资源检查仍然有效的非常简单的方法是将密码字符串XOR保存为一个数字(单独保存)。然后用相同的数字对它进行XOR'解密'。这不会妨碍反编译或内存检查的严重尝试,特别是如果将解码的字符串存储在内存中达任何时间长度。 – Bob 2012-03-28 16:35:17
http://en.wikipedia.org/wiki/Security_through_obscurity – 2012-03-28 17:00:12
(通过默默无闻的安全性)是将不同的字符串放在一起或将它们与数字异或的东西的类别,对吧? 我想我只是XOR一些字符串,并使用不会听起来像密码的词,如果有人正在积极寻找一个。我不想过多考虑它,因为如果攻击者在自己的系统上安装了应用程序,每个加密都可能被破坏。非常感谢提示,尽管如此,就像没有将解码的字符串保存在内存中的时间太长:) – 2012-03-28 17:26:42