加密iOS应用程序二进制文件



我正在构建一个iOS应用但我的app binary显示了我所有的nsstring。有办法加密吗?我想从我的app二进制文件中隐藏所有nsstring

您将无法以安全的方式加密您的应用程序二进制文件。您至少需要将密钥传递到应用程序包旁边,以便操作系统能够在运行应用程序之前对其进行加密。当你将密钥传递给应用程序时对你的应用程序感兴趣的人也能解密它。因此,加密整个二进制文件将是无用的。


你是否在应用包中附带密码或API密钥?

最好的办法是重新设计应用程序,这样就不需要这些东西了。您可以尝试阻止用户直接从二进制文件中读取它们,但他们总是能够获得它们。一些非常聪明的人已经尝试过了,但都失败了,所以不要浪费时间试图比他们更好。所以不要发布密码或API密钥!

如果您仍然希望在二进制文件中发送敏感数据:

你可以试一下:

NSString *encryptedSensitiveString = @"mysensitivdatapreviosulyencpryted"; // <- this will be stored in your binary since it's a constant string
NSString *sensitiveString = [someHiddenKey decryptString:encryptedSensitiveString];
// Now you can use your sensitive string which is decrypted at runtime

如果你正在寻找一些针对Objective-C的加密库,你可以使用基于OpenSSL的MIHCrypto框架。

正如有人已经说过的,动态构建或解密字符串是一种选择。

另一种方法是使用第三方应用程序保护系统,如Arxan。我个人从来没有使用过它,所以不能推荐它,但它做了各种混淆,以防止用户偷看你的应用。

相关内容

最新更新